https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70964

            Bug ID: 70964
           Summary: [7 Regression] internal compiler error: in
                    single_succ_edge, at basic-block.h:351
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ktkachov at gcc dot gnu.org
  Target Milestone: ---
            Target: aarch64

The testcase:
int a, c, d, e, f;
int b[0];
void
fn1 ()
{
  int g;
  long h;
  for (;;)
    {
      g = a < 0 ?: g;
      long i = d = i < 0 && g < i ?: g + i;
      f = 6;
      for (; f; f--)
        {
          h = 6;
          for (; h; h--)
            {
              int j;
              long *k;
              d || j && (*k = c);
              b[f] = e;
            }
        }
    }
}

ICEs on aarch64-none-linux-gnu compiled with -Ofast.

mycrash.c: In function ‘fn1’:
mycrash.c:4:1: internal compiler error: in single_succ_edge, at
basic-block.h:351
 fn1 ()
 ^~~
0x6fdf23 single_succ_edge
        $SRC/gcc/basic-block.h:351
0x6fdf23 lv_adjust_loop_entry_edge
        $SRC/gcc/cfgloopmanip.c:1658
0x6fdf23 loop_version(loop*, void*, basic_block_def**, unsigned int, unsigned
int, unsigned int, bool)
        $SRC/gcc/cfgloopmanip.c:1726
0xb494ff version_loop_for_if_conversion
        $SRC/gcc/tree-if-conv.c:2333
0xb494ff tree_if_conversion
        $SRC/gcc/tree-if-conv.c:2735
0xb494ff execute
        $SRC/gcc/tree-if-conv.c:2829
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Bisection shows this started with r235842.

Reply via email to