1 // DR 1697 2 // { dg-do run { target c++11 } } 3 4 #define assert(X) do { if (!(X)) __builtin_abort(); } while(0) 5 6 int i; 7 struct S { ~SS8 ~S() { assert (i++ == 2); } 9 }; 10 struct X { XX11 X() { assert (i++ == 0); } 12 X(const X&); 13 }; 14 struct T { 15 S &&s; 16 X x; 17 }; f()18void f() { assert (i++ == 1); } main()19int main() { 20 { 21 T t = T{ {}, {} }; 22 f(); 23 } 24 assert (i == 3); 25 } 26