https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89945
Bug ID: 89945 Summary: [7/8/9 Regression] ICE in gen_lowpart_general, at rtlhooks.c:63 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Affects gcc-7 upwards at -O[s123], gcc-6 compiles it : $ cat z1.c void foo () { void *g[] = {&&a, &&b}; for (unsigned c = 0x1F;; c >>= 1) { unsigned d = (long)"a"; long e = 8; while (e) { a: goto *g[c&d]; b: e--; } } } $ gcc-6 -c z1.c -O2 $ gcc-9-20190331 -c z1.c -O0 $ $ gcc-9-20190331 -c z1.c -O2 during RTL pass: split1 z1.c: In function 'foo': z1.c:14:1: internal compiler error: in gen_lowpart_general, at rtlhooks.c:63 14 | } | ^ 0xa280f8 gen_lowpart_general(machine_mode, rtx_def*) ../../gcc/rtlhooks.c:63 0xf81f7e gen_split_144(rtx_insn*, rtx_def**) ../../gcc/config/i386/i386.md:8612 0x111247f split_17 ../../gcc/config/i386/i386.md:1047 0x1117d94 split_insns(rtx_def*, rtx_insn*) ../../gcc/config/i386/i386.md:13199 0x796b11 try_split(rtx_def*, rtx_insn*, int) ../../gcc/emit-rtl.c:3851 0x9ea901 split_insn ../../gcc/recog.c:2901 0x9eea22 split_all_insns() ../../gcc/recog.c:3005 0x9eeb28 execute ../../gcc/recog.c:3905