aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-08-21 09:46:05 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-08-21 09:46:05 +0000
commit38fbc003332134ef0a04d319fb71b297f67c6988 (patch)
tree0bd514565219cc54c414c7008b3e66a0254b518b /gcc
parent8322b607d60d721542792af78b84e9069ea1a662 (diff)
downloadgcc-38fbc003332134ef0a04d319fb71b297f67c6988.zip
gcc-38fbc003332134ef0a04d319fb71b297f67c6988.tar.gz
gcc-38fbc003332134ef0a04d319fb71b297f67c6988.tar.bz2
Fix bogus CONST_WIDE_INT hash
The CONST_WIDE_INT case in const_rtx_hash_1 started the hash with the precision of the mode, but the mode is always VOIDmode. 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> gcc/ * varasm.c (const_rtx_hash_1): Don't hash in the mode of a CONST_WIDE_INT. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r251218
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/varasm.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 213b5c8..34ecfdc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
+ CONST_WIDE_INT.
+
2017-08-21 Richard Biener <rguenther@suse.de>
PR middle-end/81884
diff --git a/gcc/varasm.c b/gcc/varasm.c
index e0834a1..91680d6 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -3639,7 +3639,7 @@ const_rtx_hash_1 (const_rtx x)
break;
case CONST_WIDE_INT:
- hwi = GET_MODE_PRECISION (mode);
+ hwi = 0;
{
for (i = 0; i < CONST_WIDE_INT_NUNITS (x); i++)
hwi ^= CONST_WIDE_INT_ELT (x, i);