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':

Reply via email to