diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-12-07 21:22:46 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-12-07 21:22:46 +0000 |
commit | 07449987c90864fceb487994b4aaa5170803ab24 (patch) | |
tree | 76771090b9cb1866d55b5986c677e51dd768c3af /math/bug-nextafter.c | |
parent | 64b02fd2f5fd5d2e2b7187b5e982fa6b59587500 (diff) | |
download | glibc-07449987c90864fceb487994b4aaa5170803ab24.zip glibc-07449987c90864fceb487994b4aaa5170803ab24.tar.gz glibc-07449987c90864fceb487994b4aaa5170803ab24.tar.bz2 |
Update.
2003-12-07 Ulrich Drepper <drepper@redhat.com>
* sysdeps/i386/fpu/s_nexttowardf.c: Construct overflow value correctly.
* sysdeps/i386/fpu/s_nexttoward.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_nexttoward.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_nexttoward.c: Likewise.
* math/Makefile (tests): Add bug-nexttoward.
* math/bug-nexttowward.c: New file.
* sysdeps/generic/s_nextafter.c: Make sure overflow exception is set.
* sysdeps/ieee754/flt-32/s_nextafterf.c: Likewise.
* math/bug-nextafter.c (main): Add tests for overflow and negative
values.
Diffstat (limited to 'math/bug-nextafter.c')
-rw-r--r-- | math/bug-nextafter.c | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/math/bug-nextafter.c b/math/bug-nextafter.c index 8aa849d..015c32d 100644 --- a/math/bug-nextafter.c +++ b/math/bug-nextafter.c @@ -1,3 +1,4 @@ +#include <fenv.h> #include <math.h> #include <float.h> #include <stdlib.h> @@ -10,19 +11,53 @@ main (void) float i = INFINITY; float m = FLT_MAX; + feclearexcept (FE_ALL_EXCEPT); if (nextafterf (m, i) != i) { - puts ("nextafterf failed"); + puts ("nextafterf+ failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) != 0) + { + puts ("nextafterf+ did not overflow"); + ++result; + } + feclearexcept (FE_ALL_EXCEPT); + if (nextafterf (-m, -i) != -i) + { + puts ("nextafterf- failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) != 0) + { + puts ("nextafterf- did not overflow"); ++result; } double di = INFINITY; double dm = DBL_MAX; + feclearexcept (FE_ALL_EXCEPT); if (nextafter (dm, di) != di) { + puts ("nextafter+ failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) != 0) + { + puts ("nextafter+ did not overflow"); + ++result; + } + feclearexcept (FE_ALL_EXCEPT); + if (nextafter (-dm, -di) != -di) + { puts ("nextafter failed"); ++result; } + if (fetestexcept (FE_OVERFLOW) != 0) + { + puts ("nextafter- did not overflow"); + ++result; + } return result; } |