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)13 int 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