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

            Bug ID: 81510
           Summary: ice in operator[],  at vec.h:749
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

The following C code, when compiled by recent gcc trunk and flag -O3,
does this:

/home/dcb/creduce/dcbTest/bug371.c:7:1: internal compiler error: in operator[], 
at vec.h:749
 e() {
 ^
0xef8ea7 vec<_stmt_vec_info*, va_heap, vl_embed>::operator[](unsigned int)
        ../../trunk/gcc/vec.h:749
0xef8ea7 vec<_stmt_vec_info*, va_heap, vl_ptr>::operator[](unsigned int)
        ../../trunk/gcc/vec.h:1234
0xef8ea7 vinfo_for_stmt
        ../../trunk/gcc/tree-vectorizer.h:800
0xefeb5b vinfo_for_stmt
        ../../trunk/gcc/tree-vect-loop.c:3135

C code is

typedef d;
typedef f;
typedef long h;
a;
b;
c;
e() {
  f *g;
  h i;
  for (;;)
    if (g)
      for (; b; b++) {
        g = c;
        if (a &= c) {
          d *j = &b;
          h k;
          for (; i; i++) {
            *g ?: (*j = k);
            g = &a;
          }
          for (; i <= 3; i++)
            ;
        }
      }
}

Problem seems to exist between revisions 250361 and 250395.

Reply via email to