aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/ldbl-128/e_expl.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/e_expl.c')
-rw-r--r--sysdeps/ieee754/ldbl-128/e_expl.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-128/e_expl.c b/sysdeps/ieee754/ldbl-128/e_expl.c
index b4b789658a..1cd095cb77 100644
--- a/sysdeps/ieee754/ldbl-128/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -230,7 +230,15 @@ __ieee754_expl (long double x)
if (!unsafe)
return result;
else
- return result * scale_u.d;
+ {
+ result *= scale_u.d;
+ if (result < LDBL_MIN)
+ {
+ long double force_underflow = result * result;
+ math_force_eval (force_underflow);
+ }
+ return result;
+ }
}
/* Exceptional cases: */
else if (isless (x, himark))