| // PR c++/84874 | |
| // { dg-do run { target c++11 } } | |
| // { dg-options "" } | |
| struct A { int a, b; }; | |
| struct B { A d; }; | |
| void | |
| foo (B *x) | |
| { | |
| *x = { .d = { .b = 5 } }; | |
| } | |
| void | |
| bar (A *x) | |
| { | |
| *x = { .b = 6 }; | |
| } | |
| int | |
| main () | |
| { | |
| B b = { { 2, 3 } }; | |
| foo (&b); | |
| if (b.d.a != 0 || b.d.b != 5) | |
| __builtin_abort (); | |
| b.d.a = 8; | |
| bar (&b.d); | |
| if (b.d.a != 0 || b.d.b != 6) | |
| __builtin_abort (); | |
| } |