summaryrefslogtreecommitdiff
path: root/lib/isnan.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/isnan.c')
-rw-r--r--lib/isnan.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/isnan.c b/lib/isnan.c
index f24f576..a59dea7 100644
--- a/lib/isnan.c
+++ b/lib/isnan.c
@@ -1,5 +1,5 @@
/* Test for NaN that does not need libm.
- Copyright (C) 2007-2008 Free Software Foundation, Inc.
+ Copyright (C) 2007-2010 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@@ -18,6 +18,18 @@
#include <config.h>
+/* Specification. */
+#ifdef USE_LONG_DOUBLE
+/* Specification found in math.h or isnanl-nolibm.h. */
+extern int rpl_isnanl (long double x);
+#elif ! defined USE_FLOAT
+/* Specification found in math.h or isnand-nolibm.h. */
+extern int rpl_isnand (double x);
+#else /* defined USE_FLOAT */
+/* Specification found in math.h or isnanf-nolibm.h. */
+extern int rpl_isnanf (float x);
+#endif
+
#include <float.h>
#include <string.h>
@@ -128,10 +140,10 @@ FUNC (DOUBLE x)
-Infinity, which have the same exponent. */
m.value = x;
if (((m.word[EXPBIT0_WORD] ^ nan.word[EXPBIT0_WORD])
- & (EXP_MASK << EXPBIT0_BIT))
- == 0)
+ & (EXP_MASK << EXPBIT0_BIT))
+ == 0)
return (memcmp (&m.value, &plus_inf, SIZE) != 0
- && memcmp (&m.value, &minus_inf, SIZE) != 0);
+ && memcmp (&m.value, &minus_inf, SIZE) != 0);
else
return 0;
}