Fix wordsize-64 cosh regression (bug 14273).
authorJoseph Myers <joseph@codesourcery.com>
Thu, 21 Jun 2012 19:26:09 +0000 (19:26 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 21 Jun 2012 19:26:09 +0000 (19:26 +0000)
ChangeLog
NEWS
sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c

index a754fef..f9ccbe6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-06-21  Joseph Myers  <joseph@codesourcery.com>
 
+       [BZ #14273]
+       * sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c (__ieee754_cosh):
+       Clear sign bit of 64-bit integer value before comparing against
+       overflow value.
+
        * sysdeps/mach/configure: Regenerated.
 
 2012-06-21  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/NEWS b/NEWS
index b5edb99..8797a6b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -30,7 +30,7 @@ Version 2.16
   13983, 13986, 13996, 14012, 14027, 14033, 14034, 14036, 14040, 14043,
   14044, 14048, 14049, 14050, 14053, 14055, 14059, 14064, 14075, 14080,
   14083, 14103, 14104, 14109, 14112, 14117, 14122, 14123, 14134, 14153,
-  14183, 14188, 14199, 14210, 14218, 14229, 14241, 14278
+  14183, 14188, 14199, 14210, 14218, 14229, 14241, 14273, 14278
 
 * Support for the x32 ABI on x86-64 added.  The x32 target is selected by
   configuring glibc with:
index b8ab748..8459352 100644 (file)
@@ -67,6 +67,7 @@ __ieee754_cosh (double x)
     /* |x| in [log(maxdouble), overflowthresold] */
        int64_t fix;
        EXTRACT_WORDS64(fix, x);
+       fix &= UINT64_C(0x7fffffffffffffff);
        if (fix <= UINT64_C(0x408633ce8fb9f87d)) {
            w = __ieee754_exp(half*fabs(x));
            t = half*w;