X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=m4%2Fextern-inline.m4;h=9f93c29e4d42592cacb957cd28f653992d2b07f5;hb=831b84c59ef413c57a36b67344467d66a8a2ba70;hp=4862d60d8e7416d109c9e5428225015ffefeac4d;hpb=ddd30c54b57a59f64a42783b0b206d04e0dfad41;p=gnulib.git diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4 index 4862d60d8..9f93c29e4 100644 --- a/m4/extern-inline.m4 +++ b/m4/extern-inline.m4 @@ -19,15 +19,20 @@ AC_DEFUN([gl_EXTERN_INLINE], 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. - Suppress the use of extern inline on problematic Apple configurations, as - Libc at least through Libc-825.26 (2013-04-09) mishandles it; see, e.g., + Suppress the use of extern inline on problematic Apple configurations. + OS X 10.8 and earlier mishandle it; see, e.g., . + OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and + for clang but remains for g++; see . Perhaps Apple will fix this some day. */ #if (defined __APPLE__ \ - && ((! defined _DONT_USE_CTYPE_INLINE_ \ - && (defined __GNUC__ || defined __cplusplus)) \ - || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ - && defined __GNUC__ && ! defined __cplusplus))) + && (defined __header_inline \ + ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \ + && ! defined __clang__) \ + : ((! defined _DONT_USE_CTYPE_INLINE_ \ + && (defined __GNUC__ || defined __cplusplus)) \ + || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \ + && defined __GNUC__ && ! defined __cplusplus)))) # define _GL_EXTERN_INLINE_APPLE_BUG #endif #if ((__GNUC__ \ @@ -41,7 +46,7 @@ AC_DEFUN([gl_EXTERN_INLINE], # define _GL_EXTERN_INLINE_IN_USE #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined _GL_EXTERN_INLINE_APPLE_BUG) -# if __GNUC_GNU_INLINE__ +# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else