1 /* PR rtl-optimization/42475 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
4 
5 typedef struct { float x, y; } B;
6 typedef struct { float z; } C;
7 typedef struct { B b; C c; } D;
8 
9 B
foo(float x,float y)10 foo (float x, float y)
11 {
12   B b = { .x = x, .y = y };
13   return b;
14 }
15 
16 B
bar(B b,B y)17 bar (B b, B y)
18 {
19   return foo (y.x + b.x, b.y);
20 }
21 
22 B
baz(D p)23 baz (D p)
24 {
25   D d = { };
26   B y = bar (foo (0, (p.c.z) / 2), d.b);
27   return y;
28 }
29