aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-10-28 21:42:52 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-10-28 21:42:52 +0000
commit1f4dafa3ea24df63a6550dbdbbe8769caa7a9fc3 (patch)
tree70f341e615048fa98c3cc33efa340dcc2143b65f /sysdeps/ieee754
parenta62719ba90e2fa1728890ae7dc8df9e32a622e7b (diff)
downloadglibc-1f4dafa3ea24df63a6550dbdbbe8769caa7a9fc3.zip
glibc-1f4dafa3ea24df63a6550dbdbbe8769caa7a9fc3.tar.gz
glibc-1f4dafa3ea24df63a6550dbdbbe8769caa7a9fc3.tar.bz2
Use C11 *_TRUE_MIN macros where applicable.
C11 defines standard <float.h> macros *_TRUE_MIN for the least positive subnormal value of a type. Now that we build with -std=gnu11, we can use these macros in glibc. This patch replaces previous uses of the GCC predefines __*_DENORM_MIN__ (used in <float.h> to define *_TRUE_MIN), as well as *_DENORM_MIN references in comments. Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). Also tested for powerpc that installed stripped shared libraries are unchanged by the patch. * math/libm-test.inc (min_subnorm_value): Use LDBL_TRUE_MIN, DBL_TRUE_MIN and FLT_TRUE_MIN instead of __LDBL_DENORM_MIN__, __DBL_DENORM_MIN__ and __FLT_DENORM_MIN__. * sysdeps/ieee754/dbl-64/s_fma.c (__fma): Refer to DBL_TRUE_MIN instead of DBL_DENORM_MIN in comment. * sysdeps/ieee754/ldbl-128/s_fmal.c (__fmal): Refer to LDBL_TRUE_MIN instead of LDBL_DENORM_MIN in comment. * sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c: Include <float.h>. (__nextafterl): Use LDBL_TRUE_MIN instead of __LDBL_DENORM_MIN__. * sysdeps/ieee754/ldbl-96/s_fmal.c (__fmal): Refer to LDBL_TRUE_MIN instead of LDBL_DENORM_MIN in comment.
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/dbl-64/s_fma.c2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_fmal.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c7
-rw-r--r--sysdeps/ieee754/ldbl-96/s_fmal.c2
4 files changed, 7 insertions, 6 deletions
diff --git a/sysdeps/ieee754/dbl-64/s_fma.c b/sysdeps/ieee754/dbl-64/s_fma.c
index 8b4e133..4b9ec8b 100644
--- a/sysdeps/ieee754/dbl-64/s_fma.c
+++ b/sysdeps/ieee754/dbl-64/s_fma.c
@@ -66,7 +66,7 @@ __fma (double x, double y, double z)
/* If fma will certainly overflow, compute as x * y. */
if (u.ieee.exponent + v.ieee.exponent > 0x7ff + IEEE754_DOUBLE_BIAS)
return x * y;
- /* If x * y is less than 1/4 of DBL_DENORM_MIN, neither the
+ /* If x * y is less than 1/4 of DBL_TRUE_MIN, neither the
result nor whether there is underflow depends on its exact
value, only on its sign. */
if (u.ieee.exponent + v.ieee.exponent
diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c
index e231ce6..3c87039 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -68,7 +68,7 @@ __fmal (long double x, long double y, long double z)
if (u.ieee.exponent + v.ieee.exponent
> 0x7fff + IEEE854_LONG_DOUBLE_BIAS)
return x * y;
- /* If x * y is less than 1/4 of LDBL_DENORM_MIN, neither the
+ /* If x * y is less than 1/4 of LDBL_TRUE_MIN, neither the
result nor whether there is underflow depends on its exact
value, only on its sign. */
if (u.ieee.exponent + v.ieee.exponent
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c b/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
index bf57cb8..36a5090 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
@@ -24,6 +24,7 @@ static char rcsid[] = "$NetBSD: $";
* Special cases:
*/
+#include <float.h>
#include <math.h>
#include <math_private.h>
#include <math_ldbl_opt.h>
@@ -76,7 +77,7 @@ long double __nextafterl(long double x, long double y)
}
if(ihx <= 0x0360000000000000LL) { /* x <= LDBL_MIN */
u = math_opt_barrier (x);
- x -= __LDBL_DENORM_MIN__;
+ x -= LDBL_TRUE_MIN;
if (ihx < 0x0360000000000000LL
|| (hx > 0 && lx <= 0)
|| (hx < 0 && lx > 1)) {
@@ -115,14 +116,14 @@ long double __nextafterl(long double x, long double y)
}
if(ihx <= 0x0360000000000000LL) { /* x <= LDBL_MIN */
u = math_opt_barrier (x);
- x += __LDBL_DENORM_MIN__;
+ x += LDBL_TRUE_MIN;
if (ihx < 0x0360000000000000LL
|| (hx > 0 && lx < 0 && lx != 0x8000000000000001LL)
|| (hx < 0 && lx >= 0)) {
u = u * u;
math_force_eval (u); /* raise underflow flag */
}
- if (x == 0.0L) /* handle negative __LDBL_DENORM_MIN__ case */
+ if (x == 0.0L) /* handle negative LDBL_TRUE_MIN case */
x = -0.0L;
return x;
}
diff --git a/sysdeps/ieee754/ldbl-96/s_fmal.c b/sysdeps/ieee754/ldbl-96/s_fmal.c
index d11885e..1a0d83b 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmal.c
@@ -68,7 +68,7 @@ __fmal (long double x, long double y, long double z)
if (u.ieee.exponent + v.ieee.exponent
> 0x7fff + IEEE854_LONG_DOUBLE_BIAS)
return x * y;
- /* If x * y is less than 1/4 of LDBL_DENORM_MIN, neither the
+ /* If x * y is less than 1/4 of LDBL_TRUE_MIN, neither the
result nor whether there is underflow depends on its exact
value, only on its sign. */
if (u.ieee.exponent + v.ieee.exponent