diff options
author | Eric Blake <eblake@redhat.com> | 2010-11-04 12:29:27 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2010-11-04 17:03:58 -0600 |
commit | 74f73e82d45826c2ba8e533ff3ec75fcf9e17361 (patch) | |
tree | 4eec22158bae54aced730780424b1a549f870d9b /m4/frexp.m4 | |
parent | 37059fdaaacaaa2e4c03f1768f919186f5f263c4 (diff) | |
download | gnulib-74f73e82d45826c2ba8e533ff3ec75fcf9e17361.tar.gz |
frexp, tests: work around ICC bug with -zero
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Compute -0.0 in a way that
works with more compilers.
* tests/minus-zero.h: New file.
* modules/ceilf-tests (Files): Include it.
* modules/ceill-tests (Files): Likewise.
* modules/floorf-tests (Files): Likewise.
* modules/floorl-tests (Files): Likewise.
* modules/frexp-nolibm-tests (Files): Likewise.
* modules/frexp-tests (Files): Likewise.
* modules/frexpl-nolibm-tests (Files): Likewise.
* modules/frexpl-tests (Files): Likewise.
* modules/isnan-tests (Files): Likewise.
* modules/isnand-nolibm-tests (Files): Likewise.
* modules/isnand-tests (Files): Likewise.
* modules/isnanf-nolibm-tests (Files): Likewise.
* modules/isnanf-tests (Files): Likewise.
* modules/isnanl-nolibm-tests (Files): Likewise.
* modules/isnanl-tests (Files): Likewise.
* modules/round-tests (Files): Likewise.
* modules/roundf-tests (Files): Likewise.
* modules/roundl-tests (Files): Likewise.
* modules/ldexpl-tests (Files): Likewise.
* modules/signbit-tests (Files): Likewise.
* modules/snprintf-posix-tests (Files): Likewise.
* modules/sprintf-posix-tests (Files): Likewise.
* modules/strtod-tests (Files): Likewise.
* modules/trunc-tests (Files): Likewise.
* modules/truncf-tests (Files): Likewise.
* modules/truncl-tests (Files): Likewise.
* modules/vsnprintf-posix-tests (Files): Likewise.
* modules/vsprintf-posix-tests (Files): Likewise.
* modules/vasnprintf-posix-tests (Files): Likewise.
* modules/vasprintf-posix-tests (Files): Likewise.
* tests/test-ceilf1.c (main): Use it.
* tests/test-ceill.c (main): Likewise.
* tests/test-floorf1.c (main): Likewise.
* tests/test-floorl.c (main): Likewise.
* tests/test-frexp.c (main): Likewise.
* tests/test-frexpl.c (main): Likewise.
* tests/test-isnan.c (main): Likewise.
* tests/test-isnand.h (main): Likewise.
* tests/test-isnanf.h (main): Likewise.
* tests/test-isnanl.h (main): Likewise.
* tests/test-ldexpl.c (main): Likewise.
* tests/test-round.c (main): Likewise.
* tests/test-roundf.c (main): Likewise.
* tests/test-roundl.c (main): Likewise.
* tests/test-signbit.c (test_signbitf, test_signbitd)
(test_signbitl): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-strtod.c (main): Likewise.
* tests/test-trunc1.c (main): Likewise.
* tests/test-truncf1.c (main): Likewise.
* tests/test-truncl.c (main): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'm4/frexp.m4')
-rw-r--r-- | m4/frexp.m4 | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/m4/frexp.m4 b/m4/frexp.m4 index 530fdbcee5..bb9c4390d9 100644 --- a/m4/frexp.m4 +++ b/m4/frexp.m4 @@ -104,12 +104,24 @@ AC_DEFUN([gl_FUNC_FREXP_WORKS], #include <float.h> #include <math.h> #include <string.h> +/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. + ICC 10.0 has a bug when optimizing the expression -zero. + The expression -DBL_MIN * DBL_MIN does not work when cross-compiling + to PowerPC on MacOS X 10.5. */ +#if defined __hpux || defined __sgi || defined __ICC +static double +compute_minus_zero (void) +{ + return -DBL_MIN * DBL_MIN; +} +# define minus_zero compute_minus_zero () +#else +double minus_zero = -0.0; +#endif int main() { int i; volatile double x; -/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0. - So we use -zero instead. */ double zero = 0.0; /* Test on denormalized numbers. */ for (i = 1, x = 1.0; i >= DBL_MIN_EXP; i--, x *= 0.5) @@ -132,7 +144,7 @@ int main() return 1; } /* Test on negative zero. */ - x = -zero; + x = minus_zero; { int exp; double y = frexp (x, &exp); |