https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117360

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 59737
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=59737&action=edit
gcc15-pr117360.patch

So here is a patch I'm proposing (but I haven't actually reproduced the error,
so this is just a blind shot).
And the actual only real fix rather than cleanups is
--- gcc/ext-dce.cc.jj 2024-11-18 09:05:00.264282397 +0100
+++ gcc/ext-dce.cc 2024-11-28 16:39:08.850513159 +0100
@@ -570,7 +570,7 @@ carry_backpropagate (unsigned HOST_WIDE_
  sign bit is on in MASK.  */
       mode = GET_MODE (XEXP (x, 0));
       if (mask & ~GET_MODE_MASK (GET_MODE_INNER (mode)))
-        mask |= 1ULL << (GET_MODE_BITSIZE (mode).to_constant () - 1);
+        mask |= 1ULL << (GET_MODE_BITSIZE (GET_MODE_INNER (mode)).to_constant
() - 1);

       /* Recurse into the operand.  */
       return carry_backpropagate (mask, GET_CODE (XEXP (x, 0)), XEXP (x, 0));

Reply via email to