diff mbox

[committed] PR 61095: tsan fallout from wide-int merge

Message ID 87iophqxhc.fsf@sandifor-thinkpad.stglab.manchester.uk.ibm.com
State New
Headers show

Commit Message

Richard Sandiford May 7, 2014, 6:01 p.m. UTC
This PR was due to code in which -(int) foo was suposed to be sign-extended,
but was being ORed with an unsigned int and so ended up being zero-extended.
Fixed by using the proper-width type.

Tested on x86_64-linux-gnu and applied as obvious.  Sorry for the breakage.

Thanks,
Richard


gcc/
	PR tree-optimization/61095
	* tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
diff mbox

Patch

Index: gcc/tree-ssanames.c
===================================================================
--- gcc/tree-ssanames.c	2014-05-07 16:50:15.136064484 +0100
+++ gcc/tree-ssanames.c	2014-05-07 16:50:15.422063737 +0100
@@ -271,7 +271,8 @@  get_nonzero_bits (const_tree name)
     {
       struct ptr_info_def *pi = SSA_NAME_PTR_INFO (name);
       if (pi && pi->align)
-	return wi::shwi (-(int) pi->align | pi->misalign, precision);
+	return wi::shwi (-(HOST_WIDE_INT) pi->align
+			 | (HOST_WIDE_INT) pi->misalign, precision);
       return wi::shwi (-1, precision);
     }