extern int baz (int);
int bar (void *);

void foo (void *w, char *x, bool y, bool z)
{
  char c = bar (w);
  int i = 0;

  while (1)
    {
      x[i++] = c;
      c = bar (w);
      if (y && c == '\'')
        break;
      if (z && c == '\"')
        break;
      if (!y && !z && !baz (c))
        break;
    }
   x[i]=0;
}

causes ICE in compare_and_jump_seq on powerpc-linux, with both -O3 -m32 and
-O3 -m64.

-- 
           Summary: ICE in compare_and_jump_seq, at loop-unswitch.c:120
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: powerpc-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21330

Reply via email to