/* PR middle-end/69542 */ /* { dg-do compile } */ /* { dg-additional-options "-fcompare-debug" } */ typedef struct A *B; extern int *a[]; struct C { B b; struct D *d; }; struct A { struct { struct C e[1]; long long f[1]; } u; }; struct D { int g; B h[100]; }; int b, c, e, g; B d, f; void foo (void) __attribute__ ((__noreturn__)); int bar (void) { int i = 0; do { if ('E' && a[e][0] != 'V') foo (); struct D *k = d->u.e[0].d; B x = k->h[i], o = f->u.e[0].b; if (b) return 0; if (a[g][0] != 'E' && a[g][0] != 'V') foo (); struct D *n = o->u.e[0].d; int r = x->u.f[0]; (void) r; if (c) foo (); B y = n->h[x->u.f[0]]; if (i != y->u.f[0]) return 0; i++; } while (1); }