Tweak comment.
[gnulib.git] / m4 / isnanf.m4
index ea75d95..cff2236 100644 (file)
@@ -1,5 +1,5 @@
-# isnanf.m4 serial 3
-dnl Copyright (C) 2007 Free Software Foundation, Inc.
+# isnanf.m4 serial 5
+dnl Copyright (C) 2007-2008 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.
@@ -13,7 +13,11 @@ AC_DEFUN([gl_FUNC_ISNANF_NO_LIBM],
     gl_ISNANF_WORKS
   fi
   if test $gl_cv_func_isnanf_no_libm = yes \
-     && test "$gl_cv_func_isnanf_works" = yes; then
+     && { case "$gl_cv_func_isnanf_works" in
+            *yes) true;;
+            *) false;;
+          esac
+        }; then
     AC_DEFINE([HAVE_ISNANF_IN_LIBC], 1,
       [Define if the isnan(float) function is available in libc.])
   else
@@ -29,7 +33,10 @@ AC_DEFUN([gl_HAVE_ISNANF_NO_LIBM],
     [gl_cv_func_isnanf_no_libm],
     [
       AC_TRY_LINK([#include <math.h>
-                   #ifdef isnan
+                   #if __GNUC__ >= 4
+                   # undef isnanf
+                   # define isnanf(x) __builtin_isnanf ((float)(x))
+                   #elif defined isnan
                    # undef isnanf
                    # define isnanf(x) isnan ((float)(x))
                    #endif
@@ -50,7 +57,10 @@ AC_DEFUN([gl_ISNANF_WORKS],
     [
       AC_TRY_RUN([
 #include <math.h>
-#ifdef isnan
+#if __GNUC__ >= 4
+# undef isnanf
+# define isnanf(x) __builtin_isnanf ((float)(x))
+#elif defined isnan
 # undef isnanf
 # define isnanf(x) isnan ((float)(x))
 #endif
@@ -153,7 +163,7 @@ int main ()
         ],
         [gl_cv_cc_float_expbit0=`cat conftest.out`],
         [gl_cv_cc_float_expbit0="unknown"],
-        [gl_cv_cc_double_expbit0="word 0 bit 23"])
+        [gl_cv_cc_float_expbit0="word 0 bit 23"])
       rm -f conftest.out
     ])
   case "$gl_cv_cc_float_expbit0" in