diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128ibm/w_expl.c | 7 |
3 files changed, 9 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 2752bd2323..9b762b3a0c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2015-10-06 Joseph Myers <joseph@codesourcery.com> + [BZ #19078] + * sysdeps/ieee754/ldbl-128ibm/w_expl.c (o_thres): Remove variable. + (u_thres): Likewise. + (__expl): Determine whether to call __kernel_standard_l based on + value of result, not argument. + * math/libm-test.inc (scalb_test_data): Add more expectations for the "inexact" exception. diff --git a/NEWS b/NEWS index e3c0795fe5..5ad75a32fd 100644 --- a/NEWS +++ b/NEWS @@ -18,7 +18,7 @@ Version 2.23 18820, 18823, 18824, 18825, 18857, 18863, 18870, 18872, 18873, 18875, 18887, 18921, 18951, 18952, 18956, 18961, 18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985, 19003, 19012, 19016, 19018, 19032, 19046, - 19049, 19050, 19059, 19071, 19076, 19077. + 19049, 19050, 19059, 19071, 19076, 19077, 19078. * The obsolete header <regexp.h> has been removed. Programs that require this header must be updated to use <regex.h> instead. diff --git a/sysdeps/ieee754/ldbl-128ibm/w_expl.c b/sysdeps/ieee754/ldbl-128ibm/w_expl.c index fb5c8d3629..c9d44b61dd 100644 --- a/sysdeps/ieee754/ldbl-128ibm/w_expl.c +++ b/sysdeps/ieee754/ldbl-128ibm/w_expl.c @@ -2,9 +2,6 @@ #include <math_private.h> #include <math_ldbl_opt.h> -static const long double o_thres = 709.78271289338399678773454114191496482L; -static const long double u_thres = -744.44007192138126231410729844608163411L; - long double __expl(long double x) /* wrapper exp */ { long double z; @@ -13,9 +10,9 @@ long double __expl(long double x) /* wrapper exp */ return z; if (isfinite(x)) { - if (x >= o_thres) + if (!isfinite (z)) return __kernel_standard_l(x,x,206); /* exp overflow */ - else if (x <= u_thres) + else if (z == 0.0L) return __kernel_standard_l(x,x,207); /* exp underflow */ } return z; |