|
Packit Service |
f629e6 |
dnl Date: Sun, 26 Feb 2012 11:31:50 -0800
|
|
Packit Service |
f629e6 |
dnl From: Paul Eggert <eggert@cs.ucla.edu>
|
|
Packit Service |
f629e6 |
dnl To: arnold@skeeve.com
|
|
Packit Service |
f629e6 |
dnl CC: bug-grep@gnu.org
|
|
Packit Service |
f629e6 |
dnl Subject: Re: avoid gcc 4.6.2 'may be used before set' warnings in dfa.c
|
|
Packit Service |
f629e6 |
dnl
|
|
Packit Service |
f629e6 |
dnl On 02/26/2012 01:18 AM, arnold@skeeve.com wrote:
|
|
Packit Service |
f629e6 |
dnl > It looks like I can just use the code as it is now in grep. I have asked
|
|
Packit Service |
f629e6 |
dnl > for compile failures and haven't gotten any.
|
|
Packit Service |
f629e6 |
dnl
|
|
Packit Service |
f629e6 |
dnl Sure, but the gnulib support for this is better
|
|
Packit Service |
f629e6 |
dnl than what's in the dfa code. It could be that
|
|
Packit Service |
f629e6 |
dnl your correspondents aren't using the less-common hosts
|
|
Packit Service |
f629e6 |
dnl or compiler warning options that gnulib is ported to.
|
|
Packit Service |
f629e6 |
dnl
|
|
Packit Service |
f629e6 |
dnl In the long run stdnoreturn.h or _Noreturn is the way to go,
|
|
Packit Service |
f629e6 |
dnl since they're part of the C standard.
|
|
Packit Service |
f629e6 |
dnl
|
|
Packit Service |
f629e6 |
dnl If you'd rather not create a separate file, how about if
|
|
Packit Service |
f629e6 |
dnl we change the dfa code to use _Noreturn instead of
|
|
Packit Service |
f629e6 |
dnl <stdnoreturn.h> and noreturn, and you can put the
|
|
Packit Service |
f629e6 |
dnl following into your configure.ac so that config.h
|
|
Packit Service |
f629e6 |
dnl defines _Noreturn the same way gnulib does:
|
|
Packit Service |
f629e6 |
|
|
Packit Service |
f629e6 |
AC_DEFUN([GAWK_AC_NORETURN],[
|
|
Packit Service |
f629e6 |
AH_VERBATIM([_Noreturn],
|
|
Packit Service |
f629e6 |
[/* The _Noreturn keyword of C11. */
|
|
Packit Service |
f629e6 |
#ifndef _Noreturn
|
|
Packit Service |
f629e6 |
# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
|
|
Packit Service |
f629e6 |
|| 0x5110 <= __SUNPRO_C)
|
|
Packit Service |
f629e6 |
# define _Noreturn __attribute__ ((__noreturn__))
|
|
Packit Service |
f629e6 |
# elif defined _MSC_VER && 1200 <= _MSC_VER
|
|
Packit Service |
f629e6 |
# define _Noreturn __declspec (noreturn)
|
|
Packit Service |
f629e6 |
# else
|
|
Packit Service |
f629e6 |
# define _Noreturn
|
|
Packit Service |
f629e6 |
# endif
|
|
Packit Service |
f629e6 |
#endif
|
|
Packit Service |
f629e6 |
])])
|