https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99663
--- Comment #3 from Matthias Klose <doko at debian dot org> --- trying to reproduce, it ICEs at a different place... $ cat decNumber.i typedef struct { int exponent; unsigned short lsu[]; } decNumber; char __decd2utable[] = {}; decNumber *decExpOp_rhs; void decExpOp() { decNumber buft[0]; decNumber allocbuft; decNumber *t = buft; int t_0; if (decExpOp_rhs) t = &allocbuft; for (;;) { unsigned short varbuff[0]; unsigned short *msu1, *source = t->lsu + (9 ? __decd2utable[t_0] : 3); for (; source >= t->lsu; source--, msu1--) *msu1 = *source; for (; msu1 >= varbuff;) ; if (t->exponent) break; } } $ build/gcc/xgcc -Bbuild/gcc/ -c -mtune=z15 -march=z13 -mzarch -O1 decNumber.i during RTL pass: reload decNumber.i: In function ‘decExpOp’: decNumber.i:24:1: internal compiler error: in lra_set_insn_recog_data, at lra.c:1004 24 | } | ^ 0x1ea6333 lra_set_insn_recog_data(rtx_insn*) ../../src/gcc/lra.c:1004 0x1ea2063 lra_get_insn_recog_data ../../src/gcc/lra-int.h:487 0x1ea9f99 lra_update_insn_regno_info(rtx_insn*) ../../src/gcc/lra.c:1625 0x1eab8b7 lra_push_insn_1 ../../src/gcc/lra.c:1780 0x1eab905 lra_push_insn(rtx_insn*) ../../src/gcc/lra.c:1788 0x1eabad9 push_insns ../../src/gcc/lra.c:1831 0x1eabd81 lra_process_new_insns(rtx_insn*, rtx_insn*, rtx_insn*, char const*) ../../src/gcc/lra.c:1871 0x1ed2bab curr_insn_transform ../../src/gcc/lra-constraints.c:4669 0x1ed5c17 lra_constraints(bool) ../../src/gcc/lra-constraints.c:5163 0x1eaddb3 lra(_IO_FILE*) ../../src/gcc/lra.c:2336 0x1e13ec3 do_reload ../../src/gcc/ira.c:5834 0x1e145f1 execute ../../src/gcc/ira.c:6020 Please submit a full bug report, with preprocessed source if appropriate.