1 /* { dg-do compile } */
2 /* { dg-additional-options "-O3" } */
3
4 typedef struct {
5 double a, b;
6 } c;
7 typedef struct {
8 c d;
9 long coordinates;
10 } e;
11 int f;
12 c g;
13 e h;
14 void k(int);
15 int n();
16 void j() { int i; k(i); }
17 void k(int l) {
18 double a;
19 int b;
20 c m[4];
21 long i;
22 for (; l;)
23 do {
24 g.a = b ?: a;
25 m[3] = g;
26 if (f)
27 m[0] = m[1] = m[3];
28 i = 0;
29 for (; i < 4; i++)
30 (&h + i)->d = m[i];
31 } while (n());
32 }