Use a command that uses $CC $CFLAGS, not $CPP, to test whether inline is
authorBruno Haible <bruno@clisp.org>
Fri, 10 Nov 2006 14:37:40 +0000 (14:37 +0000)
committerBruno Haible <bruno@clisp.org>
Fri, 10 Nov 2006 14:37:40 +0000 (14:37 +0000)
effective. From Jim.

ChangeLog
m4/inline.m4

index 4367040..74371ff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2006-11-10  Jim Meyering  <jim@meyering.net>
 
+       * m4/inline.m4 (gl_INLINE): Check with the compiler, not cpp, so that
+       relevant options in CFLAGS (like -O, -fno-inline) are taken into
+       account.
+
+2006-11-10  Jim Meyering  <jim@meyering.net>
+
        * modules/inline: New file/module.
        * modules/xalloc (Files): Remove m4/inline.m4.
        (Depends-on): Add inline, instead.
index 2810dd1..a07076c 100644 (file)
@@ -1,4 +1,4 @@
-# inline.m4 serial 2
+# inline.m4 serial 3
 dnl Copyright (C) 2006 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -19,11 +19,16 @@ AC_DEFUN([gl_INLINE],
      else
        dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is
        dnl specified.
-       AC_EGREP_CPP([bummer], [
-         #ifdef __NO_INLINE__
-         bummer
-         #endif
-       ], [gl_cv_c_inline_effective=no], [gl_cv_c_inline_effective=yes])
+       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