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