diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2017-08-21 09:46:05 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2017-08-21 09:46:05 +0000 |
commit | 38fbc003332134ef0a04d319fb71b297f67c6988 (patch) | |
tree | 0bd514565219cc54c414c7008b3e66a0254b518b /gcc | |
parent | 8322b607d60d721542792af78b84e9069ea1a662 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/varasm.c | 2 |
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); |