https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97313
Bug ID: 97313 Summary: [11 Regression] ICE in lra_set_insn_recog_data, at lra.c:1004 since r11-937-g5261cf8ce824bfc7 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: vmakarov at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu Target: i586-linux-gnu The following test-case reduced from qemu fails: $ cat /tmp/tz.i typedef struct { int unspecified : 1; int secure : 1; } MemTxAttrs; enum { MSCAllowNonSecure } tz_msc_read_pdata; int tz_msc_read_s_0; int tz_msc_check(); int address_space_ldl_le(); void tz_msc_read(MemTxAttrs attrs) { int as = tz_msc_read_s_0; long long data; switch (tz_msc_check()) { case MSCAllowNonSecure: attrs.secure = attrs.unspecified = 0; data = address_space_ldl_le(as, attrs); } tz_msc_read_pdata = data; } $ gcc /tmp/tz.i -O2 -fPIE -m32 during RTL pass: reload /tmp/tz.i: In function ‘tz_msc_read’: /tmp/tz.i:21:1: internal compiler error: in lra_set_insn_recog_data, at lra.c:1004 21 | } | ^ 0x105e179 lra_set_insn_recog_data(rtx_insn*) /home/marxin/Programming/gcc/gcc/lra.c:1004 0x105bf0d lra_get_insn_recog_data /home/marxin/Programming/gcc/gcc/lra-int.h:488 0x1060ae3 remove_scratches_1 /home/marxin/Programming/gcc/gcc/lra.c:2064 0x105cdfb lra_emit_move(rtx_def*, rtx_def*) /home/marxin/Programming/gcc/gcc/lra.c:506 0x1073611 match_reload /home/marxin/Programming/gcc/gcc/lra-constraints.c:1138 0x107cff9 curr_insn_transform /home/marxin/Programming/gcc/gcc/lra-constraints.c:4551 0x107e986 lra_constraints(bool) /home/marxin/Programming/gcc/gcc/lra-constraints.c:5100 0x106175d lra(_IO_FILE*) /home/marxin/Programming/gcc/gcc/lra.c:2415 0xfee170 do_reload /home/marxin/Programming/gcc/gcc/ira.c:5529 0xfee65e execute /home/marxin/Programming/gcc/gcc/ira.c:5715 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.