changeset 7633:75a7956bce8c

Use a command that uses $CC $CFLAGS, not $CPP, to test whether inline is effective. From Jim.
author Bruno Haible <bruno@clisp.org>
date Fri, 10 Nov 2006 14:37:40 +0000
parents a955e5f25317
children 5996191c5ffa
files ChangeLog m4/inline.m4
diffstat 2 files changed, 17 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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.
--- a/m4/inline.m4
+++ b/m4/inline.m4
@@ -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 @@
      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