Construct overflow value correctly.
authordrepper <drepper>
Sun, 7 Dec 2003 03:22:30 +0000 (03:22 +0000)
committerdrepper <drepper>
Sun, 7 Dec 2003 03:22:30 +0000 (03:22 +0000)
sysdeps/ieee754/flt-32/s_nextafterf.c

index 611742b..e144e56 100644 (file)
@@ -19,6 +19,7 @@ static char rcsid[] = "$NetBSD: s_nextafterf.c,v 1.4 1995/05/10 20:48:01 jtc Exp
 
 #include "math.h"
 #include "math_private.h"
+#include <float.h>
 
 #ifdef __STDC__
        float __nextafterf(float x, float y)
@@ -57,7 +58,14 @@ static char rcsid[] = "$NetBSD: s_nextafterf.c,v 1.4 1995/05/10 20:48:01 jtc Exp
            }
        }
        hy = hx&0x7f800000;
-       if(hy>=0x7f800000) return x+x;  /* overflow  */
+       if(hy>=0x7f800000) {
+#if FLT_EVAL_METHOD == 0
+         return x+x;   /* overflow  */
+#else
+         /* Note that y is either +Inf or -Inf.  */
+         return x+y;
+#endif
+       }
        if(hy<0x00800000) {             /* underflow */
            y = x*x;
            if(y!=x) {          /* raise underflow flag */