This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.21-524-g8475ab1


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  8475ab16848cf2adb6ce3446749c2f1d10233286 (commit)
      from  36870482d2a33e3b703bd74b52063594389e827a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8475ab16848cf2adb6ce3446749c2f1d10233286

commit 8475ab16848cf2adb6ce3446749c2f1d10233286
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Jun 24 15:12:03 2015 +0000

    Fix ldbl-128 expl missing underflows (bug 18586).
    
    Similar to various other bugs in this area, the ldbl-128 expl
    implementation does not raise the underflow exception for all
    subnormal results, if the scaling down is exact although the actual
    result is inexact.  This patch fixes this by forcing the exception in
    this case (the tests that failed before and pass after the test are
    already in the testsuite).
    
    Tested for mips64.
    
    	[BZ #18586]
    	* sysdeps/ieee754/ldbl-128/e_expl.c (__ieee754_expl): Force
    	underflow exception for small results.

diff --git a/ChangeLog b/ChangeLog
index b5e19b1..b103dcd 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 aacd894..e8c84b8 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 b4b7896..1cd095c 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))

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                         |    6 ++++++
 NEWS                              |    2 +-
 sysdeps/ieee754/ldbl-128/e_expl.c |   10 +++++++++-
 3 files changed, 16 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]