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()18 void f() { assert (i++ == 1); }
main()19 int main() {
20   {
21     T t = T{ {}, {} };
22     f();
23   }
24   assert (i == 3);
25 }
26