From: Bruno Haible Date: Wed, 8 Nov 2006 14:03:04 +0000 (+0000) Subject: Notice when GCC doesn't do inlining. X-Git-Tag: cvs-readonly~1594 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=68de1516997f552b68c0f67db650de8b57367e12;p=gnulib.git Notice when GCC doesn't do inlining. --- diff --git a/ChangeLog b/ChangeLog index 75aa3a9e7..19af385bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-11-08 Bruno Haible + + * m4/inline.m4 (gl_INLINE): Also test __NO_INLINE__. + Suggested by Paul Eggert. + 2006-11-08 Jim Meyering * lib/fts.c [!_LGPL_PACKAGE]: Don't include fcntl--.h twice. diff --git a/m4/inline.m4 b/m4/inline.m4 index 18f8ebfc3..2810dd1a2 100644 --- a/m4/inline.m4 +++ b/m4/inline.m4 @@ -1,4 +1,4 @@ -# inline.m4 serial 1 +# inline.m4 serial 2 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, @@ -7,13 +7,29 @@ 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_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. + AC_EGREP_CPP([bummer], [ + #ifdef __NO_INLINE__ + bummer + #endif + ], [gl_cv_c_inline_effective=no], [gl_cv_c_inline_effective=yes]) + 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'.]) + [Define to 1 if the compiler supports one of the keywords + 'inline', '__inline__', '__inline' and effectively inlines + functions marked as such.]) fi ])