# HG changeset patch # User Bruno Haible # Date 1162994584 0 # Node ID 37846c5bc506273013c247842a501c0549a1384a # Parent 5bfad7d666d60dd4f98e000d5821fb6033813c43 Notice when GCC doesn't do inlining. diff --git a/ChangeLog b/ChangeLog --- 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 --- 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 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 ])