* data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at

__STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
Problem reported by John P. Hartmann.
* data/yacc.c (YYMODERN_C): Likewise.  Don't define if the user has
already defined it.
This commit is contained in:
Paul Eggert
2005-10-13 06:23:54 +00:00
parent 9b8a5ce03b
commit ba0fe3c710
3 changed files with 29 additions and 19 deletions

View File

@@ -1,3 +1,11 @@
2005-10-12 Paul Eggert <eggert@cs.ucla.edu>
* data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
__STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
Problem reported by John P. Hartmann.
* data/yacc.c (YYMODERN_C): Likewise. Don't define if the user has
already defined it.
2005-10-12 Akim Demaille <akim@epita.fr> 2005-10-12 Akim Demaille <akim@epita.fr>
* src/parse-gram.y (version_check): Exit 63 to please missing * src/parse-gram.y (version_check): Exit 63 to please missing
@@ -14,7 +22,7 @@
that xlc complains about. that xlc complains about.
* src/scan-skel.l (skel_wrap): Likewise. * src/scan-skel.l (skel_wrap): Likewise.
* data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well * data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
as __STDC__, as IBM cc defines the former but not the latter. as __STDC__.
* data/yacc.c (YYMODERN_C): New macro, which also looks at * data/yacc.c (YYMODERN_C): New macro, which also looks at
__STDC_VERSION__. Use it everywhere instead of looking at __STDC_VERSION__. Use it everywhere instead of looking at
__STDC__ and __cplusplus. __STDC__ and __cplusplus.
@@ -9188,7 +9196,7 @@
2002-01-20 Marc Autret <marc@gnu.org> 2002-01-20 Marc Autret <marc@gnu.org>
* src/system.h: Need to define __attribute__ away for non-GCC * src/system.h: Need to define __attribute__ away for non-GCC
compilers as well (i.e. the vendor C compiler). compilers as well (i.e., the vendor C compiler).
Suggested by Albert Chin-A-Young. Suggested by Albert Chin-A-Young.
2002-01-11 Tim Van Holder <tim.van.holder@pandora.be> 2002-01-11 Tim Van Holder <tim.van.holder@pandora.be>

View File

@@ -232,7 +232,7 @@ m4_define([b4_token_enums_defines],
# ---------------------------------------------------------- # ----------------------------------------------------------
# Declare the function NAME. # Declare the function NAME.
m4_define([b4_c_function_def], m4_define([b4_c_function_def],
[#if defined (__STDC__) || defined (__STDC_VERSION__) || defined (__cplusplus) [#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
b4_c_ansi_function_def($@) b4_c_ansi_function_def($@)
#else #else
$2 $2

View File

@@ -219,16 +219,18 @@ typedef struct YYLTYPE
/* Line __line__ of yacc.c. */ /* Line __line__ of yacc.c. */
b4_syncline([@oline@], [@ofile@])[ b4_syncline([@oline@], [@ofile@])[
/* Define YYMODERN_C if this compiler supports C89 or better. Some /* Define YYMODERN_C if this compiler supports C89 or better. If
modern compilers (e.g., IBM xlc 7.0) don't define __STDC__ for __STDC__ is defined, the compiler is modern. IBM xlc 7.0 when run
pedantic reasons, but they define __STDC_VERSION__ so check that as 'cc' doesn't define __STDC__ (or __STDC_VERSION__) for pedantic
as well. Consider a C++ compiler to be modern if it defines reasons, but it defines __C99__FUNC__ so check that as well.
__cplusplus. */ Consider a C++ compiler to be modern if it defines __cplusplus. */
#if defined (__STDC__) || defined (__STDC_VERSION__) || defined (__cplusplus) #ifndef YYMODERN_C
# if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
# define YYMODERN_C 1 # define YYMODERN_C 1
# else # else
# define YYMODERN_C 0 # define YYMODERN_C 0
# endif # endif
#endif
#ifndef YYSIZE_T #ifndef YYSIZE_T
# if defined (__SIZE_TYPE__) # if defined (__SIZE_TYPE__)