diff options
Diffstat (limited to 'sysdeps/ieee754/dbl-64/e_j1.c')
-rw-r--r-- | sysdeps/ieee754/dbl-64/e_j1.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/sysdeps/ieee754/dbl-64/e_j1.c b/sysdeps/ieee754/dbl-64/e_j1.c index 26ffdfe282..4827fbf3d3 100644 --- a/sysdeps/ieee754/dbl-64/e_j1.c +++ b/sysdeps/ieee754/dbl-64/e_j1.c @@ -127,12 +127,10 @@ __ieee754_j1 (double x) { if (huge + x > one) /* inexact if x!=0 necessary */ { - double ret = 0.5 * x; - if (fabs (ret) < DBL_MIN) - { - double force_underflow = ret * ret; - math_force_eval (force_underflow); - } + double ret = math_narrow_eval (0.5 * x); + math_check_force_underflow (ret); + if (ret == 0 && x != 0) + __set_errno (ERANGE); return ret; } } |