1 /* { dg-do compile } */
2 
3 int a, b, c, d, e, f, g, h, i[3], l, m, n, o, p, q, r;
4 
5 struct S0
6 {
7   int f0;
8   int f1;
9   int f2;
10   int f3;
11 } j;
12 
13 static int
fn1(int p1)14 fn1 (int p1)
15 {
16   return p1 || ((p1 > 0) > (e << 1));
17 }
18 
19 static struct S0
fn2(struct S0 p1)20 fn2 (struct S0 p1)
21 {
22   char s;
23   struct S0 t = {0,0,0,0};
24   int u = 2;
25   for (;;)
26     {
27       if (i[0])
28 	break;
29       for (m = 0; m < 4; m++)
30 	for (p1.f0 = 0; p1.f0 < 3; p1.f0++)
31 	  {
32 	    j = t;
33 	    t.f3 = i[p1.f0];
34 	    o = b || 1 >> b ? 0 : a < 0;
35 	    q = 1 % d;
36 	    if ((g < fn1 ((1 ^ (q & 1)) | n)) ^ u)
37 	      j.f3 |= p % 2;
38 	    s = j.f3 > 0 ? j.f3 : j.f3 << 1;
39 	    r = l = s && p1.f1 * c;
40 	    h = p1.f1;
41 	  }
42     }
43   return p1;
44 }
45 
46 int
main()47 main ()
48 {
49   for (;f;)
50     {
51       struct S0 v = {0,0,0,0};
52       fn2 (v);
53       j.f3 = 0;
54     }
55   return 0;
56 }
57