diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_jn.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/e_jnf.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_jnl.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/e_jnl.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_jnl.c | 4 |
5 files changed, 20 insertions, 0 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c index 63788c5a24..0d2a24c93b 100644 --- a/sysdeps/ieee754/dbl-64/e_jn.c +++ b/sysdeps/ieee754/dbl-64/e_jn.c @@ -36,6 +36,7 @@ * */ +#include <errno.h> #include <math.h> #include <math_private.h> @@ -276,6 +277,9 @@ __ieee754_yn(int n, double x) GET_HIGH_WORD(high,b); a = temp; } + /* If B is +-Inf, set up errno accordingly. */ + if (! __finite (b)) + __set_errno (ERANGE); } if(sign>0) return b; else return -b; } diff --git a/sysdeps/ieee754/flt-32/e_jnf.c b/sysdeps/ieee754/flt-32/e_jnf.c index bed9cee7ab..ad26d7e8a6 100644 --- a/sysdeps/ieee754/flt-32/e_jnf.c +++ b/sysdeps/ieee754/flt-32/e_jnf.c @@ -13,6 +13,7 @@ * ==================================================== */ +#include <errno.h> #include <math.h> #include <math_private.h> @@ -199,6 +200,9 @@ __ieee754_ynf(int n, float x) GET_FLOAT_WORD(ib,b); a = temp; } + /* If B is +-Inf, set up errno accordingly. */ + if (! __finitef (b)) + __set_errno (ERANGE); if(sign>0) return b; else return -b; } strong_alias (__ieee754_ynf, __ynf_finite) diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c index e320d994bf..70d5672fd9 100644 --- a/sysdeps/ieee754/ldbl-128/e_jnl.c +++ b/sysdeps/ieee754/ldbl-128/e_jnl.c @@ -56,6 +56,7 @@ * */ +#include <errno.h> #include <math.h> #include <math_private.h> @@ -385,6 +386,9 @@ __ieee754_ynl (int n, long double x) a = temp; } } + /* If B is +-Inf, set up errno accordingly. */ + if (! __finitel (b)) + __set_errno (ERANGE); if (sign > 0) return b; else diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c index 930a2bcbdf..40012e41e1 100644 --- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c +++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c @@ -56,6 +56,7 @@ * */ +#include <errno.h> #include <math.h> #include <math_private.h> @@ -387,6 +388,9 @@ __ieee754_ynl (int n, long double x) a = temp; } } + /* If B is +-Inf, set up errno accordingly. */ + if (! __finitel (b)) + __set_errno (ERANGE); if (sign > 0) return b; else diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c index 36b0d8ba44..58a9107f7d 100644 --- a/sysdeps/ieee754/ldbl-96/e_jnl.c +++ b/sysdeps/ieee754/ldbl-96/e_jnl.c @@ -56,6 +56,7 @@ * */ +#include <errno.h> #include <math.h> #include <math_private.h> @@ -369,6 +370,9 @@ __ieee754_ynl (int n, long double x) a = temp; } } + /* If B is +-Inf, set up errno accordingly. */ + if (! __finitel (b)) + __set_errno (ERANGE); if (sign > 0) return b; else |