diff options
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r-- | sysdeps/ieee754/flt-32/s_nextafterf.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nextafterl.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nexttoward.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_nexttowardf.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c | 5 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_nexttoward.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/s_nexttowardf.c | 3 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c | 3 |
10 files changed, 32 insertions, 0 deletions
diff --git a/sysdeps/ieee754/flt-32/s_nextafterf.c b/sysdeps/ieee754/flt-32/s_nextafterf.c index 22e0b3d4ed..625d54b768 100644 --- a/sysdeps/ieee754/flt-32/s_nextafterf.c +++ b/sysdeps/ieee754/flt-32/s_nextafterf.c @@ -17,6 +17,7 @@ static char rcsid[] = "$NetBSD: s_nextafterf.c,v 1.4 1995/05/10 20:48:01 jtc Exp $"; #endif +#include <errno.h> #include <math.h> #include <math_private.h> #include <float.h> @@ -59,10 +60,12 @@ float __nextafterf(float x, float y) if(hy>=0x7f800000) { float u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00800000) { float u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } SET_FLOAT_WORD(x,hx); return x; diff --git a/sysdeps/ieee754/ldbl-128/s_nextafterl.c b/sysdeps/ieee754/ldbl-128/s_nextafterl.c index d5eaa1cc91..4e9a2ce520 100644 --- a/sysdeps/ieee754/ldbl-128/s_nextafterl.c +++ b/sysdeps/ieee754/ldbl-128/s_nextafterl.c @@ -24,6 +24,7 @@ static char rcsid[] = "$NetBSD: $"; * Special cases: */ +#include <errno.h> #include <math.h> #include <math_private.h> @@ -70,10 +71,12 @@ long double __nextafterl(long double x, long double y) if(hy==0x7fff000000000000LL) { long double u = x + x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy==0) { long double u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } SET_LDOUBLE_WORDS64(x,hx,lx); return x; diff --git a/sysdeps/ieee754/ldbl-128/s_nexttoward.c b/sysdeps/ieee754/ldbl-128/s_nexttoward.c index 2ee7a1be5c..4343fe83f8 100644 --- a/sysdeps/ieee754/ldbl-128/s_nexttoward.c +++ b/sysdeps/ieee754/ldbl-128/s_nexttoward.c @@ -25,6 +25,7 @@ static char rcsid[] = "$NetBSD: $"; * Special cases: */ +#include <errno.h> #include <math.h> #include <math_private.h> #include <float.h> @@ -75,10 +76,12 @@ double __nexttoward(double x, long double y) if(hy>=0x7ff00000) { double u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00100000) { double u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } INSERT_WORDS(x,hx,lx); return x; diff --git a/sysdeps/ieee754/ldbl-128/s_nexttowardf.c b/sysdeps/ieee754/ldbl-128/s_nexttowardf.c index 9c9c7e5283..8703359d4f 100644 --- a/sysdeps/ieee754/ldbl-128/s_nexttowardf.c +++ b/sysdeps/ieee754/ldbl-128/s_nexttowardf.c @@ -18,6 +18,7 @@ static char rcsid[] = "$NetBSD: $"; #endif +#include <errno.h> #include <math.h> #include <math_private.h> @@ -62,10 +63,12 @@ float __nexttowardf(float x, long double y) if(hy>=0x7f800000) { float u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00800000) { float u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } SET_FLOAT_WORD(x,hx); return x; diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c b/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c index 36a5090693..515aa1ef5b 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c @@ -24,6 +24,7 @@ static char rcsid[] = "$NetBSD: $"; * Special cases: */ +#include <errno.h> #include <float.h> #include <math.h> #include <math_private.h> @@ -69,6 +70,7 @@ long double __nextafterl(long double x, long double y) if((hx==0xffefffffffffffffLL)&&(lx==0xfc8ffffffffffffeLL)) { u = x+x; /* overflow, return -inf */ math_force_eval (u); + __set_errno (ERANGE); return y; } if (hx >= 0x7ff0000000000000LL) { @@ -83,6 +85,7 @@ long double __nextafterl(long double x, long double y) || (hx < 0 && lx > 1)) { u = u * u; math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } return x; } @@ -108,6 +111,7 @@ long double __nextafterl(long double x, long double y) if((hx==0x7fefffffffffffffLL)&&(lx==0x7c8ffffffffffffeLL)) { u = x+x; /* overflow, return +inf */ math_force_eval (u); + __set_errno (ERANGE); return y; } if ((uint64_t) hx >= 0xfff0000000000000ULL) { @@ -122,6 +126,7 @@ long double __nextafterl(long double x, long double y) || (hx < 0 && lx >= 0)) { u = u * u; math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } if (x == 0.0L) /* handle negative LDBL_TRUE_MIN case */ x = -0.0L; diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c b/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c index 8c6119825e..d8f4fc6523 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c @@ -25,6 +25,7 @@ static char rcsid[] = "$NetBSD: $"; * Special cases: */ +#include <errno.h> #include <math.h> #include <math_private.h> #include <math_ldbl_opt.h> @@ -76,10 +77,12 @@ double __nexttoward(double x, long double y) if(hy>=0x7ff00000) { double u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00100000) { double u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } INSERT_WORDS(x,hx,lx); return x; diff --git a/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c b/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c index 4000a93e69..7c5d1cc112 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c @@ -18,6 +18,7 @@ static char rcsid[] = "$NetBSD: $"; #endif +#include <errno.h> #include <math.h> #include <math_private.h> #include <math_ldbl_opt.h> @@ -65,10 +66,12 @@ float __nexttowardf(float x, long double y) if(hy>=0x7f800000) { float u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00800000) { /* underflow */ float u = x*x; math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } SET_FLOAT_WORD(x,hx); return x; diff --git a/sysdeps/ieee754/ldbl-96/s_nexttoward.c b/sysdeps/ieee754/ldbl-96/s_nexttoward.c index 7908f9c0ff..3d0382eac9 100644 --- a/sysdeps/ieee754/ldbl-96/s_nexttoward.c +++ b/sysdeps/ieee754/ldbl-96/s_nexttoward.c @@ -25,6 +25,7 @@ static char rcsid[] = "$NetBSD: $"; * Special cases: */ +#include <errno.h> #include <math.h> #include <math_private.h> #include <float.h> @@ -72,10 +73,12 @@ double __nexttoward(double x, long double y) if(hy>=0x7ff00000) { double u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00100000) { double u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } INSERT_WORDS(x,hx,lx); return x; diff --git a/sysdeps/ieee754/ldbl-96/s_nexttowardf.c b/sysdeps/ieee754/ldbl-96/s_nexttowardf.c index 53c527d9ac..ae7538942f 100644 --- a/sysdeps/ieee754/ldbl-96/s_nexttowardf.c +++ b/sysdeps/ieee754/ldbl-96/s_nexttowardf.c @@ -17,6 +17,7 @@ static char rcsid[] = "$NetBSD: $"; #endif +#include <errno.h> #include <math.h> #include <math_private.h> #include <float.h> @@ -60,10 +61,12 @@ float __nexttowardf(float x, long double y) if(hy>=0x7f800000) { float u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00800000) { float u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } SET_FLOAT_WORD(x,hx); return x; diff --git a/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c b/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c index dbcf840f2c..07e9375b78 100644 --- a/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c +++ b/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c @@ -20,6 +20,7 @@ * Special cases: */ +#include <errno.h> #include <math.h> #include <math_private.h> #include <math_ldbl_opt.h> @@ -64,10 +65,12 @@ float __nldbl_nexttowardf(float x, double y) if(hy>=0x7f800000) { float u = x+x; /* overflow */ math_force_eval (u); + __set_errno (ERANGE); } if(hy<0x00800000) { float u = x*x; /* underflow */ math_force_eval (u); /* raise underflow flag */ + __set_errno (ERANGE); } SET_FLOAT_WORD(x,hx); return x; |