maint: update copyright
[gnulib.git] / m4 / isnanf.m4
index c040090..1f2717d 100644 (file)
@@ -1,5 +1,5 @@
-# isnanf.m4 serial 11
-dnl Copyright (C) 2007-2010 Free Software Foundation, Inc.
+# isnanf.m4 serial 14
+dnl Copyright (C) 2007-2014 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.
@@ -17,6 +17,7 @@ AC_DEFUN([gl_FUNC_ISNANF],
       ISNANF_LIBM=-lm
     fi
   fi
+  dnl The variable gl_func_isnanf set here is used by isnan.m4.
   if test $gl_cv_func_isnanf_no_libm = yes \
      || test $gl_cv_func_isnanf_in_libm = yes; then
     save_LIBS="$LIBS"
@@ -32,7 +33,6 @@ AC_DEFUN([gl_FUNC_ISNANF],
   fi
   if test $gl_func_isnanf != yes; then
     HAVE_ISNANF=0
-    gl_BUILD_ISNANF
   fi
   AC_SUBST([ISNANF_LIBM])
 ])
@@ -51,17 +51,17 @@ AC_DEFUN([gl_FUNC_ISNANF_NO_LIBM],
             *) false;;
           esac
         }; then
+    gl_func_isnanf_no_libm=yes
     AC_DEFINE([HAVE_ISNANF_IN_LIBC], [1],
       [Define if the isnan(float) function is available in libc.])
   else
-    gl_BUILD_ISNANF
+    gl_func_isnanf_no_libm=no
   fi
 ])
 
-dnl Pull in replacement isnanf definition. It does not need -lm.
-AC_DEFUN([gl_BUILD_ISNANF],
+dnl Prerequisites of replacement isnanf definition. It does not need -lm.
+AC_DEFUN([gl_PREREQ_ISNANF],
 [
-  AC_LIBOBJ([isnanf])
   gl_FLOAT_EXPONENT_LOCATION
 ])
 
@@ -150,13 +150,13 @@ NaN ()
 typedef union { unsigned int word[NWORDS]; float value; } memory_float;
 int main()
 {
-  memory_float m;
+  int result = 0;
 
   if (isnanf (1.0f / 0.0f))
-    return 1;
+    result |= 1;
 
   if (!isnanf (NaN ()))
-    return 1;
+    result |= 2;
 
 #if defined FLT_EXPBIT0_WORD && defined FLT_EXPBIT0_BIT
   /* The isnanf function should be immune against changes in the sign bit and
@@ -164,16 +164,18 @@ int main()
      a sign bit or a mantissa bit.  */
   if (FLT_EXPBIT0_WORD == 0 && FLT_EXPBIT0_BIT > 0)
     {
+      memory_float m;
+
       m.value = NaN ();
       /* Set the bits below the exponent to 01111...111.  */
       m.word[0] &= -1U << FLT_EXPBIT0_BIT;
       m.word[0] |= 1U << (FLT_EXPBIT0_BIT - 1) - 1;
       if (!isnanf (m.value))
-        return 1;
+        result |= 4;
     }
 #endif
 
-  return 0;
+  return result;
 }]])],
         [gl_cv_func_isnanf_works=yes],
         [gl_cv_func_isnanf_works=no],