From 07449987c90864fceb487994b4aaa5170803ab24 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 7 Dec 2003 21:22:46 +0000 Subject: Update. 2003-12-07 Ulrich Drepper * 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. --- math/bug-nexttoward.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 math/bug-nexttoward.c (limited to 'math/bug-nexttoward.c') diff --git a/math/bug-nexttoward.c b/math/bug-nexttoward.c new file mode 100644 index 0000000000..e306a129c2 --- /dev/null +++ b/math/bug-nexttoward.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include +#include + +int +main (void) +{ + int result = 0; + + long double tl = (long double) FLT_MAX + 0x1.0p128L; + float fi = INFINITY; + float m = FLT_MAX; + feclearexcept (FE_ALL_EXCEPT); + if (nexttowardf (m, tl) != fi) + { + puts ("nexttowardf+ failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) == 0) + { + puts ("nexttowardf+ did not overflow"); + ++result; + } + feclearexcept (FE_ALL_EXCEPT); + if (nexttowardf (-m, -tl) != -fi) + { + puts ("nexttowardf- failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) == 0) + { + puts ("nexttowardf- did not overflow"); + ++result; + } + + tl = (long double) DBL_MAX + 1.0e305L; + double di = INFINITY; + double dm = DBL_MAX; + feclearexcept (FE_ALL_EXCEPT); + if (nexttoward (dm, tl) != di) + { + puts ("nexttoward+ failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) == 0) + { + puts ("nexttoward+ did not overflow"); + ++result; + } + feclearexcept (FE_ALL_EXCEPT); + if (nexttoward (-dm, -tl) != -di) + { + puts ("nexttoward- failed"); + ++result; + } + if (fetestexcept (FE_OVERFLOW) == 0) + { + puts ("nexttoward- did not overflow"); + ++result; + } + + return result; +} -- cgit v1.2.1