summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--NEWS2
-rw-r--r--sysdeps/ieee754/ldbl-128/e_expl.c10
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index b5e19b1817..b103dcdc26 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-06-24 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #18586]
+ * sysdeps/ieee754/ldbl-128/e_expl.c (__ieee754_expl): Force
+ underflow exception for small results.
+
2015-06-24 Andrew Senkevich <andrew.senkevich@intel.com>
* sysdeps/x86_64/fpu/Makefile (libmvec-support): Fixed files list.
diff --git a/NEWS b/NEWS
index aacd894c82..e8c84b88e0 100644
--- a/NEWS
+++ b/NEWS
@@ -24,7 +24,7 @@ Version 2.22
18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498,
18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528, 18529, 18530,
18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546,
- 18547, 18553, 18558, 18569, 18583.
+ 18547, 18553, 18558, 18569, 18583, 18586.
* Cache information can be queried via sysconf() function on s390 e.g. with
_SC_LEVEL1_ICACHE_SIZE as argument.
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))