X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Finline.m4;h=6fa997246c95bd1875b9e6ea79f84a5dbab0e44a;hb=33cfac68b39b6d6aad1046afa605fec41f95a1e5;hp=18f8ebfc3b5fcd9b3a78e3601fedbd749cf94667;hpb=0e1d2681418340ff55594a579f9cf12514e06353;p=gnulib.git diff --git a/m4/inline.m4 b/m4/inline.m4 index 18f8ebfc3..6fa997246 100644 --- a/m4/inline.m4 +++ b/m4/inline.m4 @@ -1,5 +1,5 @@ -# inline.m4 serial 1 -dnl Copyright (C) 2006 Free Software Foundation, Inc. +# inline.m4 serial 4 +dnl Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -7,13 +7,34 @@ dnl with or without modifications, as long as this notice is preserved. dnl Test for the 'inline' keyword or equivalent. dnl Define 'inline' to a supported equivalent, or to nothing if not supported, dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an -dnl equivalent is supported, i.e. if the compiler is likely to drop unused -dnl 'static inline' functions. +dnl equivalent is effectively supported, i.e. if the compiler is likely to +dnl drop unused 'static inline' functions. AC_DEFUN([gl_INLINE], [ AC_REQUIRE([AC_C_INLINE]) - if test $ac_cv_c_inline != no; then - AC_DEFINE([HAVE_INLINE], 1, - [Define to 1 if the compiler supports one of the keywords 'inline', '__inline__', '__inline'.]) + AC_CACHE_CHECK([whether the compiler generally respects inline], + [gl_cv_c_inline_effective], + [if test $ac_cv_c_inline = no; then + gl_cv_c_inline_effective=no + else + dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is + dnl specified. + dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result + dnl depends on optimization flags, which can be in CFLAGS. + dnl (AC_EGREP_CPP looks only at the CPPFLAGS.) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[]], + [[#ifdef __NO_INLINE__ + #error "inline is not effective" + #endif]])], + [gl_cv_c_inline_effective=yes], + [gl_cv_c_inline_effective=no]) + fi + ]) + if test $gl_cv_c_inline_effective = yes; then + AC_DEFINE([HAVE_INLINE], [1], + [Define to 1 if the compiler supports one of the keywords + 'inline', '__inline__', '__inline' and effectively inlines + functions marked as such.]) fi ])