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

            Bug ID: 82762
           Summary: ICE at -O3: in compute_antic, at tree-ssa-pre.c:2397
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu
  Target Milestone: ---

This appears to be a very recent regression. 

$ gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/home/su/software/tmp/gcc/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/home/su/software/tmp/gcc/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 8.0.0 20171028 (experimental) [trunk revision 254198] (GCC)
$
$ gcctk -O2 -c small.c
$ gcc-7.2.0 -O3 -c small.c
$
$ gcctk -O3 -c small.c
during GIMPLE pass: pre
small.c: In function ‘q’:
small.c:17:5: internal compiler error: in compute_antic, at tree-ssa-pre.c:2397
 int q ()
     ^
0xe38a63 compute_antic
        ../../gcc-source-trunk/gcc/tree-ssa-pre.c:2397
0xe38a63 execute
        ../../gcc-source-trunk/gcc/tree-ssa-pre.c:4204
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$
$ cat small.c
int printf (const char *, ...);

int b, c, d, e, f, g, j, k;
char h, i;
volatile int l;

int m (int n, int o)
{ 
  return o < 0 || o > 1 ? n : o;
}

int p (int n, unsigned o)
{ 
  return n - o;
}

int q ()
{ 
  char r;
  int a, s, t, u, v, w;
L:
  if (t)
    printf ("%d", d);
  u = v;
  while (j)
    { 
      while (e)
        for (w = 0; w != 54; w += 6)
          { 
            l;
            s = p (u < 1, i || c);
            r = s < 0 || s > 1 ? 0 : 1 >> s;
            v = r;
            g = h;
          }
      if (h)
        return f;
      if (u)
        for (a = 0; a != 54; a += 6)
          f = m (2, -(k || b));
    }
  d = t;
  goto L;
}

Reply via email to