1 /* { dg-do compile } */
2 /* { dg-options "-O3" } */
3 
4 struct S
5 {
6   int f1;
7   int f2;
8 } a;
9 
10 int b, c, d, e;
11 short f;
12 
13 int
fn1(int p1,unsigned p2)14 fn1 (int p1, unsigned p2)
15 {
16   return p1 + p2;
17 }
18 
19 void
fn2()20 fn2 ()
21 {
22   struct S g;
23   int h;
24   for (; c; c++)
25     for (f = -3; f < 3; f = fn1 (f, 8))
26       {
27         a.f1 = e;
28         if (b)
29           a = g;
30         else
31           for (; h; h++)
32             d = b;
33       }
34 }
35