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

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-17 
15:00:56 UTC ---
Reduced testcase for -O2:

typedef struct T *R;
typedef union P { int i; } S;
struct T { union { S f[1]; } u; };
struct G { int l; int t; int r; };
typedef struct G H;
typedef struct { H v[1]; } V;
H *
f1 (V *x, unsigned y)
{
  return &x->v[y];
}
typedef struct { V b; } W;
W *h;
int
foo (R x, R y)
{
  if ((f1 (&h->b, y->u.f[0].i)->t ? f1 (&h->b, y->u.f[0].i)->t : 0)
      - f1 (h ? &h->b : 0, x->u.f[0].i)->r
      - (f1 (h ? &h->b : 0, x->u.f[0].i)->t > 0 ? 5 : 0))
    return 1;
}

Reply via email to