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

            Bug ID: 126250
           Summary: [17 Regression] ICE at -O2 during RTL pass: final
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xxs_chy at outlook dot com
  Target Milestone: ---

Reproducer: https://godbolt.org/z/6zW137oYY
Testcase:
#include <stdint.h>
int8_t g9;
_Bool g16, g29, f4_c12, f21_deadovb16;
static _BitInt(95) g21;
_BitInt(5) f4_v7;
void *f4()
{
    switch (f4_v7)
    case 9009:
    case 1:
        g9 = 0;
    g29 = g21;
    if (g16)
        if (f4_c12) return 0;
}
int32_t f21()
{
    int16_t ov5;
    _BitInt(95) deadx22;
    switch (ov5)
    {
        case 4: goto lbl_sw56;
        default: goto lbl_sw_def58;
    }
lbl_sw56:
    if (f21_deadovb16) goto lbl_bf63;
lbl_sw_def58:
    g21 = deadx22;
    goto lbl_sw66;
lbl_bf63:
    g16 = 0;
lbl_sw66:
    f4();
    g21 = 301 / g21;
    goto lbl_bf63;
}

Dump:
<source>:36:1: error: could not split insn
   36 | }
      | ^
(insn:TI 30 78 66 3 (set (mem/c:V1TI (reg/f:DI 7 sp) [4 %sfp+-16 S16 A128])
        (reg:TI 0 ax [107])) "<source>":34:15 98 {*movti_internal}
     (expr_list:REG_DEAD (reg:TI 0 ax [107])
        (nil)))
during RTL pass: final
<source>:36:1: internal compiler error: in final_scan_insn_1, at final.cc:2823
0x27b0488 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
        ???:0
0x27a50cb internal_error(char const*, ...)
        ???:0
0xa35876 fancy_abort(char const*, int, char const*)
        ???:0
0x8b099d _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ???:0
0xd7c2ff final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
        ???:0

Reply via email to