diff options
Diffstat (limited to 'sysdeps/ieee754/ldbl-128/e_powl.c')
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_powl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-128/e_powl.c b/sysdeps/ieee754/ldbl-128/e_powl.c index f531385232..7f3037fb51 100644 --- a/sysdeps/ieee754/ldbl-128/e_powl.c +++ b/sysdeps/ieee754/ldbl-128/e_powl.c @@ -435,7 +435,11 @@ __ieee754_powl (long double x, long double y) j = o.parts32.w0; j += (n << 16); if ((j >> 16) <= 0) - z = __scalbnl (z, n); /* subnormal output */ + { + z = __scalbnl (z, n); /* subnormal output */ + long double force_underflow = z * z; + math_force_eval (force_underflow); + } else { o.parts32.w0 = j; |