extern-inline.m4 (bison-3.8.1.tar.xz) | : | extern-inline.m4 (bison-3.8.2.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 20 | skipping to change at line 20 | |||
AH_VERBATIM([extern_inline], | AH_VERBATIM([extern_inline], | |||
[/* Please see the Gnulib manual for how to use these macros. | [/* Please see the Gnulib manual for how to use these macros. | |||
Suppress extern inline with HP-UX cc, as it appears to be broken; see | Suppress extern inline with HP-UX cc, as it appears to be broken; see | |||
<https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>. | <https://lists.gnu.org/r/bug-texinfo/2013-02/msg00030.html>. | |||
Suppress extern inline with Sun C in standards-conformance mode, as it | Suppress extern inline with Sun C in standards-conformance mode, as it | |||
mishandles inline functions that call each other. E.g., for 'inline void f | mishandles inline functions that call each other. E.g., for 'inline void f | |||
(void) { } inline void g (void) { f (); }', c99 incorrectly complains | (void) { } inline void g (void) { f (); }', c99 incorrectly complains | |||
'reference to static identifier "f" in extern inline function'. | 'reference to static identifier "f" in extern inline function'. | |||
This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. | This bug was observed with Oracle Developer Studio 12.6 | |||
(Sun C 5.15 SunOS_sparc 2017/05/30). | ||||
Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) | Suppress extern inline (with or without __attribute__ ((__gnu_inline__))) | |||
on configurations that mistakenly use 'static inline' to implement | on configurations that mistakenly use 'static inline' to implement | |||
functions or macros in standard C headers like <ctype.h>. For example, | functions or macros in standard C headers like <ctype.h>. For example, | |||
if isdigit is mistakenly implemented via a static inline function, | if isdigit is mistakenly implemented via a static inline function, | |||
a program containing an extern inline function that calls isdigit | a program containing an extern inline function that calls isdigit | |||
may not work since the C standard prohibits extern inline functions | may not work since the C standard prohibits extern inline functions | |||
from calling static functions (ISO C 99 section 6.7.4.(3). | from calling static functions (ISO C 99 section 6.7.4.(3). | |||
This bug is known to occur on: | This bug is known to occur on: | |||
skipping to change at line 86 | skipping to change at line 87 | |||
&& !defined _GL_EXTERN_INLINE_STDHEADER_BUG) | && !defined _GL_EXTERN_INLINE_STDHEADER_BUG) | |||
# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ | # if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ | |||
/* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ | /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ | |||
# define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) | # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) | |||
# else | # else | |||
# define _GL_INLINE extern inline | # define _GL_INLINE extern inline | |||
# endif | # endif | |||
# define _GL_EXTERN_INLINE extern | # define _GL_EXTERN_INLINE extern | |||
# define _GL_EXTERN_INLINE_IN_USE | # define _GL_EXTERN_INLINE_IN_USE | |||
#else | #else | |||
# define _GL_INLINE static _GL_UNUSED | # define _GL_INLINE _GL_UNUSED static | |||
# define _GL_EXTERN_INLINE static _GL_UNUSED | # define _GL_EXTERN_INLINE _GL_UNUSED static | |||
#endif | #endif | |||
/* In GCC 4.6 (inclusive) to 5.1 (exclusive), | /* In GCC 4.6 (inclusive) to 5.1 (exclusive), | |||
suppress bogus "no previous prototype for 'FOO'" | suppress bogus "no previous prototype for 'FOO'" | |||
and "no previous declaration for 'FOO'" diagnostics, | and "no previous declaration for 'FOO'" diagnostics, | |||
when FOO is an inline function in the header; see | when FOO is an inline function in the header; see | |||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and | <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and | |||
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */ | <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>. */ | |||
#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ | #if __GNUC__ == 4 && 6 <= __GNUC_MINOR__ | |||
# if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ | # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ | |||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 4 lines changed or added |