summaryrefslogtreecommitdiff
path: root/tests/test-strtod.c
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2010-11-04 12:29:27 -0600
committerEric Blake <eblake@redhat.com>2010-11-04 17:03:58 -0600
commit74f73e82d45826c2ba8e533ff3ec75fcf9e17361 (patch)
tree4eec22158bae54aced730780424b1a549f870d9b /tests/test-strtod.c
parent37059fdaaacaaa2e4c03f1768f919186f5f263c4 (diff)
downloadgnulib-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 'tests/test-strtod.c')
-rw-r--r--tests/test-strtod.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/tests/test-strtod.c b/tests/test-strtod.c
index e1d04af3b9..261761006d 100644
--- a/tests/test-strtod.c
+++ b/tests/test-strtod.c
@@ -28,15 +28,12 @@ SIGNATURE_CHECK (strtod, double, (char const *, char **));
#include <string.h>
#include "isnand-nolibm.h"
+#include "minus-zero.h"
#include "macros.h"
/* Avoid requiring -lm just for fabs. */
#define FABS(d) ((d) < 0.0 ? -(d) : (d))
-/* 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;
-
int
main (void)
{
@@ -312,7 +309,7 @@ main (void)
errno = 0;
result = strtod (input, &ptr);
ASSERT (result == 0.0);
- ASSERT (!!signbit (result) == !!signbit (-zero)); /* IRIX 6.5, OSF/1 4.0 */
+ ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* IRIX 6.5, OSF/1 4.0 */
ASSERT (ptr == input + 2);
ASSERT (errno == 0);
}
@@ -407,7 +404,7 @@ main (void)
errno = 0;
result = strtod (input, &ptr);
ASSERT (result == 0.0);
- ASSERT (!!signbit (result) == !!signbit (-zero)); /* MacOS X 10.3, FreeBSD 6.2, IRIX 6.5, OSF/1 4.0 */
+ ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* MacOS X 10.3, FreeBSD 6.2, IRIX 6.5, OSF/1 4.0 */
ASSERT (ptr == input + 2); /* glibc-2.3.6, MacOS X 10.3, FreeBSD 6.2, AIX 7.1 */
ASSERT (errno == 0);
}
@@ -553,7 +550,7 @@ main (void)
0 on negative underflow, even though quality of implementation
demands preserving the sign. Disable this test until fixed
glibc is more prevalent. */
- ASSERT (!!signbit (result) == !!signbit (-zero)); /* glibc-2.3.6, mingw */
+ ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* glibc-2.3.6, mingw */
#endif
ASSERT (ptr == input + 10);
ASSERT (errno == ERANGE);
@@ -972,7 +969,7 @@ main (void)
errno = 0;
result = strtod (input, &ptr);
ASSERT (result == 0.0);
- ASSERT (!!signbit (result) == !!signbit (-zero)); /* IRIX 6.5, OSF/1 4.0 */
+ ASSERT (!!signbit (result) == !!signbit (minus_zerod)); /* IRIX 6.5, OSF/1 4.0 */
ASSERT (ptr == input + m);
ASSERT (errno == 0);
}