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