// DR 1697 // { dg-do run { target c++11 } } #define assert(X) do { if (!(X)) __builtin_abort(); } while(0) int i; struct S { ~S() { assert (i++ == 2); } }; struct X { X() { assert (i++ == 0); } X(const X&); }; struct T { S &&s; X x; }; void f() { assert (i++ == 1); } int main() { { T t = T{ {}, {} }; f(); } assert (i == 3); }