https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116002
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Known to fail| |13.3.0 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- The minimal fix for this is the following with the first hunk only for consistency (I'm not sure this is relevant). This might be more appropriate when one considers backporting. diff --git a/gcc/cselib.cc b/gcc/cselib.cc index cbaab7d515c..67f57b67649 100644 --- a/gcc/cselib.cc +++ b/gcc/cselib.cc @@ -1267,12 +1267,12 @@ cselib_hash_plus_const_int (rtx x, HOST_WIDE_INT c, int create, return e->hash; unsigned hash = (unsigned) PLUS + (unsigned) GET_MODE (x); - hash += e->hash; + hash = iterative_hash_hashval_t (hash, e->hash); unsigned int tem_hash = (unsigned) CONST_INT + (unsigned) VOIDmode; tem_hash += ((unsigned) CONST_INT << 7) + (unsigned HOST_WIDE_INT) c; if (tem_hash == 0) tem_hash = (unsigned int) CONST_INT; - hash += tem_hash; + hash = iterative_hash_hashval_t (hash, tem_hash); return hash ? hash : 1 + (unsigned int) PLUS; } @@ -1509,7 +1509,7 @@ cselib_hash_rtx (rtx x, int create, machine_mode memmode) if (tem_hash == 0) return 0; - hash += tem_hash; + hash = iterative_hash_hashval_t (hash, tem_hash); } break; case 'E':