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.16-ports-merge-691-g8e18b86


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  8e18b86d4a78f1b96d587bb2b369550c664227a3 (commit)
      from  12df29e2d24e96421b0ac7842acef79edb19c4af (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://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8e18b86d4a78f1b96d587bb2b369550c664227a3

commit 8e18b86d4a78f1b96d587bb2b369550c664227a3
Author: David S. Miller <davem@davemloft.net>
Date:   Fri Nov 16 21:39:54 2012 -0800

    Fix BZ #14811 for ldbl-128 too.
    
    	[BZ #14811]
    	* sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Saturate
    	nonzero exponents with absolute value below 0x1p-128 to +/-
    	0x1p-128.

diff --git a/ChangeLog b/ChangeLog
index 82c48f8..9bdff02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-11-17  David S. Miller  <davem@davemloft.net>
+
+	[BZ #14811]
+	* sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Saturate
+	nonzero exponents with absolute value below 0x1p-128 to +/-
+	0x1p-128.
+
 2012-11-17  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/fxstatat.c: Include <string.h>.
diff --git a/sysdeps/ieee754/ldbl-128/e_powl.c b/sysdeps/ieee754/ldbl-128/e_powl.c
index 40fc314..d131750 100644
--- a/sysdeps/ieee754/ldbl-128/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128/e_powl.c
@@ -149,7 +149,7 @@ __ieee754_powl (long double x, long double y)
 {
   long double z, ax, z_h, z_l, p_h, p_l;
   long double y1, t1, t2, r, s, t, u, v, w;
-  long double s2, s_h, s_l, t_h, t_l;
+  long double s2, s_h, s_l, t_h, t_l, ay;
   int32_t i, j, k, yisint, n;
   u_int32_t ix, iy;
   int32_t hx, hy;
@@ -282,6 +282,10 @@ __ieee754_powl (long double x, long double y)
 	return (hy > 0) ? huge * huge : tiny * tiny;
     }
 
+  ay = y > 0 ? y : -y;
+  if (ay < 0x1p-128)
+    y = y < 0 ? -0x1p-128 : 0x1p-128;
+
   n = 0;
   /* take care subnormal number */
   if (ix < 0x00010000)

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

Summary of changes:
 ChangeLog                         |    7 +++++++
 sysdeps/ieee754/ldbl-128/e_powl.c |    6 +++++-
 2 files changed, 12 insertions(+), 1 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]