struct { int *b1; } *f1 ();
short v1[1];
struct S { int b2; };
void
foo (struct S *a1, union { char *b3; unsigned *b4; int *b5; } *a2)
{
  int d;
  switch (d)
    {
    case 0:
      {
        int c = a1->b2, i;
        if (f1 () == 0)
          *a2->b3++ = 2;
        else if (((long) (f1 () - f1 ())) ^ ((long) f1 ()->b1 - ((long) f1 () &
8)))
          *a2->b3++ = (long) f1 - ((long) f1 () & 0xff);
        else
          *a2->b4++ = (long) f1;
        for (i = 0; i < c; i++)
          *a2->b5++ = (long) v1;
        foo (a1, a2);
      }
    }
}

ICEs with -g -O2 -fpic on x86_64-linux with:
rh588154.i: In function 'foo':
rh588154.i:24:1: internal compiler error: in loc_cmp, at var-tracking.c:2681
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


-- 
           Summary: [4.5/4.6 Regression] ICE in loc_cmp
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jakub at gcc dot gnu dot org
GCC target triplet: x86_64-linux


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

Reply via email to