https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109940
Bug ID: 109940
Summary: ICE in decide_candidate_validity, bisected to
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: peter.waller at arm dot com
Target Milestone: ---
The following reproducer crashes after 53dddbfeb213ac4ec39f550aa81eaa4264375d2c
(Use correct CFG orders for DF worklist processing, 21 April 2023) and not on
the parent commit, it is still broken up to at least
a8900fe4812f6b77d1349308bb4de08f7c130225 (May 22, 1422 UTC):
aarch64-unknown-gnu-gcc -O3 -S -o - -march=armv9-a -x c - <<EOF
a;
*b;
c(int *d) { *d = a; }
e(d, f) {
if (d <= 1)
return;
int g = d / 2;
for (int h = 0; h < g; h++)
if (f == b > b[h])
c(&b[h]);
e(g);
e(g, f);
}
EOF
It produces the following output:
during RTL pass: early_remat
<stdin>:13:1: internal compiler error: in decide_candidate_validity, at
early-remat.cc:1521
0x1d87b47 diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char
const*, __va_list_tag (*) [1], diagnostic_t)
???:0
0x1d88997 internal_error(char const*, ...)
???:0
0x8f39f9 fancy_abort(char const*, int, char const*)
???:0
0x8b670d (anonymous namespace)::pass_early_remat::execute(function*) [clone
.cold]
???:0