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

            Bug ID: 79731
           Summary: ICE: verify_gimple failed
           Product: gcc
           Version: 7.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gerhard.steinmetz.fort...@t-online.de
  Target Milestone: ---

Affects version 7 at -Os, -O1 or higher.


$ cat z1.c
typedef unsigned V __attribute__ ((vector_size (8)));
V
foo (unsigned x, V v)
{
  do {
      v %= x;
      x = 1;
  } while (v[1]);
  return v;
}
void fn2 ()
{
  V x = foo (5, (V) { 0, 1 });
  if (x[0] || x[1] || x[2] || x[3]);
}


$ gcc-7-20170226 -O2 -c z1.c
z1.c: In function 'fn2':
z1.c:11:6: error: position plus size exceeds size of referenced object in
BIT_FIELD_REF
 void fn2 ()
      ^~~
BIT_FIELD_REF <x, 64, 64>
z1.c:14:28: note: in statement
   if (x[0] || x[1] || x[2] || x[3]);
       ~~~~~~~~~~~~~~~~~~~~~^~~~~~~
_4 = BIT_FIELD_REF <x, 64, 64>;
z1.c:11:6: internal compiler error: verify_gimple failed
 void fn2 ()
      ^~~
0xc40f16 verify_gimple_in_cfg(function*, bool)
        ../../gcc/tree-cfg.c:5266
0xb1a203 execute_function_todo
        ../../gcc/passes.c:1966
0xb1ab35 execute_todo
        ../../gcc/passes.c:2016

Reply via email to