...well, still HOST_BITS_PER_WIDE_INT-1 officially, until Richard's patches.

Caught by a boostrap-ubsan on wide-int.  Tested on x86_64-linux-gnu and
committed as obvious.

Richard


gcc/
        * hwint.h (zext_hwi): Fix signed overflow for prec == 63.

Index: gcc/hwint.h
===================================================================
--- gcc/hwint.h 2014-01-03 15:06:18.841058787 +0000
+++ gcc/hwint.h 2014-05-02 16:31:44.987263123 +0100
@@ -344,7 +344,7 @@ zext_hwi (unsigned HOST_WIDE_INT src, un
   else
     {
       gcc_checking_assert (prec < HOST_BITS_PER_WIDE_INT);
-      return src & (((HOST_WIDE_INT) 1 << prec) - 1);
+      return src & (((unsigned HOST_WIDE_INT) 1 << prec) - 1);
     }
 }
 

Reply via email to