https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90071
Bug ID: 90071
Summary: internal compiler error: SSA corruption
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: gsocshubham at gmail dot com
CC: mliska at suse dot cz
Target Milestone: ---
Host: x86_64-linux-gnu
Target: x86_64-linux-gnu
Build: x86_64-linux-gnu
Created attachment 46154
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46154&action=edit
Preprocessed code of program causing ICE "crash1.c"
-----------------------COMPILER CONFIGURATION---------------------------------
Using built-in specs.
COLLECT_GCC=./xgcc
Target: x86_64-pc-linux-gnu
Configured with: ../gcc/configure --enable-languages=c,c++ --enable-lto
--disable-bootstrap : (reconfigured) ../gcc/configure --enable-languages=c,c++
--enable-lto --disable-bootstrap
Thread model: posix
gcc version 9.0.1 20190412 (experimental) (GCC)
-----------------COMMAND LINE USED FOR COMPILATION-------------------------
~/pull-gcc-9-trunk/build/gcc/xgcc -B ~/pull-gcc-9-trunk/build/gcc/
-I../../runtime/ crash1.c -w -O1
Unable to coalesce ssa_names 571 and 568 which are marked as MUST COALESCE.
p_61_571(ab) and p_61_568(ab)
during RTL pass: expand
crash1.c: In function ‘func_59’:
crash1.c:1696:20: internal compiler error: SSA corruption
1696 | static struct S0 * func_59(uint16_t p_60, uint32_t p_61, uint16_t
p_62)
| ^~~~~~~
0xdc07c1 fail_abnormal_edge_coalesce
../../gcc/gcc/tree-ssa-coalesce.c:1002
0xdc07c1 coalesce_partitions
../../gcc/gcc/tree-ssa-coalesce.c:1424
0xdc07c1 coalesce_ssa_name(_var_map*)
../../gcc/gcc/tree-ssa-coalesce.c:1755
0xd585ab remove_ssa_form
../../gcc/gcc/tree-outof-ssa.c:1029
0xd585ab rewrite_out_of_ssa(ssaexpand*)
../../gcc/gcc/tree-outof-ssa.c:1287
0x7f8700 execute
../../gcc/gcc/cfgexpand.c:6314
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.
------------------------REDUCED CODE----------------------------------------
a;
static b;
c() {
int d, e = &&f;
void *g = &&h;
h:
++e;
if (a)
i:
goto *g;
for (;;) {
e = 0;
if (b)
goto i;
}
f:
goto *({ d || e < 0 || e >= 2; });
&e;
}