[GCC] Fix compile time error introduced by PR64111 (GCC FSF).
This fixes a severe compile time issue that was introduced in GCC
FSF by the initial fix for PR6411. It came into the ChromeOS
compiler as part of svn r220383, which was a merge from Google 4.9.
It came into Google 4.9 as part of svn r219106, which was a merge
of several revisions from the GCC FSF compiler.
BUG=chromium:546241
TEST=Verified it fixed the issue; ran buildbots with patch to verify
no new correctness issues were introduced (x86-alex, falco, daisy);
bootstrapped the compiler and ran GCC dejagnu regression tests.
Change-Id: I1b713d17c753e816a61be2986d1defdb75d5b260
Reviewed-on: https://chromium-review.googlesource.com/307833
Commit-Ready: Caroline Tice <[email protected]>
Tested-by: Caroline Tice <[email protected]>
Reviewed-by: Luis Lozano <[email protected]>
diff --git a/gcc/tree.c b/gcc/tree.c
index 3b1ff76..3b88a4e 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -1120,8 +1120,10 @@
{
const_tree const t = (const_tree) x;
- return (TREE_INT_CST_HIGH (t) ^ TREE_INT_CST_LOW (t)
- ^ TYPE_UID (TREE_TYPE (t)));
+ hashval_t hash = TYPE_UID (TREE_TYPE (t));
+ hash = iterative_hash_host_wide_int (TREE_INT_CST_HIGH (t), hash);
+ hash = iterative_hash_host_wide_int (TREE_INT_CST_LOW (t), hash);
+ return hash;
}
/* Return nonzero if the value represented by *X (an INTEGER_CST tree node)