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

Reply via email to