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)10foo (float x, float y) 11 { 12 B b = { .x = x, .y = y }; 13 return b; 14 } 15 16 B bar(B b,B y)17bar (B b, B y) 18 { 19 return foo (y.x + b.x, b.y); 20 } 21 22 B baz(D p)23baz (D p) 24 { 25 D d = { }; 26 B y = bar (foo (0, (p.c.z) / 2), d.b); 27 return y; 28 } 29