1 /* PR middle-end/69542 */ 2 /* { dg-do compile } */ 3 /* { dg-additional-options "-fcompare-debug" } */ 4 5 typedef struct A *B; 6 extern int *a[]; 7 struct C { B b; struct D *d; }; 8 struct A { struct { struct C e[1]; long long f[1]; } u; }; 9 struct D { int g; B h[100]; }; 10 int b, c, e, g; 11 B d, f; 12 void foo (void) __attribute__ ((__noreturn__)); bar(void)13int bar (void) 14 { 15 int i = 0; 16 do 17 { 18 if ('E' && a[e][0] != 'V') 19 foo (); 20 struct D *k = d->u.e[0].d; 21 B x = k->h[i], o = f->u.e[0].b; 22 if (b) 23 return 0; 24 if (a[g][0] != 'E' && a[g][0] != 'V') 25 foo (); 26 struct D *n = o->u.e[0].d; 27 int r = x->u.f[0]; 28 (void) r; 29 if (c) 30 foo (); 31 B y = n->h[x->u.f[0]]; 32 if (i != y->u.f[0]) 33 return 0; 34 i++; 35 } 36 while (1); 37 } 38