From 662ed2006568f953290f5e0b40cce38252db78f4 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Tue, 13 Nov 2012 10:12:07 +0100 Subject: math: fix nextafter and nexttoward on maxdbl and maxflt input old code (return x+x;) returns correct value and raises correct flags only if the result is stored as double (or float) --- src/math/nextafterf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/math/nextafterf.c') diff --git a/src/math/nextafterf.c b/src/math/nextafterf.c index b703487b..22b61dce 100644 --- a/src/math/nextafterf.c +++ b/src/math/nextafterf.c @@ -26,7 +26,7 @@ float nextafterf(float x, float y) e = ux.bits & 0x7f800000; /* raise overflow if ux.value is infinite and x is finite */ if (e == 0x7f800000) - return x + x; + FORCE_EVAL(x+x); /* raise underflow if ux.value is subnormal or zero */ if (e == 0) FORCE_EVAL(x*x + ux.value*ux.value); -- cgit v1.2.1