https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122016
Bug ID: 122016
Summary: [15/16 Regression] ICE: SSA corruption (Unable to
coalesce ssa_names 4 and 18 which are marked as MUST
COALESCE)
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: doko at gcc dot gnu.org
Target Milestone: ---
seen with the gcc-15 branch and the trunk, not with gcc-14. Can be worked
around by using -O1 instead of -O2:
$ cat merge.i
int merge_parse_args_argc;
char merge_parse_args_argv_0;
int strncmp(char *, char *, long);
void _setjmp();
typedef enum { FALSE, TRUE } bool;
void directory_exists();
void merge_parse_args() {
int i;
bool help_found = FALSE;
while (i < merge_parse_args_argc && !help_found) {
if (strncmp("", &merge_parse_args_argv_0, 2))
help_found = TRUE;
else {
for (;;) {
_setjmp();
break;
}
i++;
directory_exists();
}
i++;
}
_setjmp();
}
$ gcc -std=gnu17 -c -O2 merge.i
Unable to coalesce ssa_names 4 and 18 which are marked as MUST COALESCE.
i_4(ab) and i_18(ab)
during RTL pass: expand
merge.i: In function 'merge_parse_args':
merge.i:7:6: internal compiler error: SSA corruption
7 | void merge_parse_args() {
| ^~~~~~~~~~~~~~~~
0x15bf2a7 internal_error(char const*, ...)
../../src/gcc/diagnostic-global-context.cc:517
0x9c8ae1 fail_abnormal_edge_coalesce
../../src/gcc/tree-ssa-coalesce.cc:1014
0x9c8ae1 coalesce_partitions
../../src/gcc/tree-ssa-coalesce.cc:1446
0x9c8ae1 coalesce_ssa_name(_var_map*)
../../src/gcc/tree-ssa-coalesce.cc:1900
0x1bc6763 remove_ssa_form
../../src/gcc/tree-outof-ssa.cc:1070
0x1bc6763 rewrite_out_of_ssa(ssaexpand*)
../../src/gcc/tree-outof-ssa.cc:1408
0x18205e9 execute
../../src/gcc/cfgexpand.cc:7011
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.