summaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/flt-32/e_j1f.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/flt-32/e_j1f.c')
-rw-r--r--sysdeps/ieee754/flt-32/e_j1f.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sysdeps/ieee754/flt-32/e_j1f.c b/sysdeps/ieee754/flt-32/e_j1f.c
index 63de21f609..f359a3d9ba 100644
--- a/sysdeps/ieee754/flt-32/e_j1f.c
+++ b/sysdeps/ieee754/flt-32/e_j1f.c
@@ -71,11 +71,10 @@ __ieee754_j1f(float x)
}
if(__builtin_expect(ix<0x32000000, 0)) { /* |x|<2**-27 */
if(huge+x>one) { /* inexact if x!=0 necessary */
- float ret = (float) 0.5 * x;
- if (fabsf (ret) < FLT_MIN) {
- float force_underflow = ret * ret;
- math_force_eval (force_underflow);
- }
+ float ret = math_narrow_eval ((float) 0.5 * x);
+ math_check_force_underflow (ret);
+ if (ret == 0 && x != 0)
+ __set_errno (ERANGE);
return ret;
}
}