1 // { dg-do run { target c++11 } } 2 3 #define assert(E) if(!(E))__builtin_abort(); 4 5 int n = 0; 6 7 template <class T> 8 class Foo { 9 public: Foo()10 Foo() { 11 n--; 12 } Foo(const Foo &)13 Foo(const Foo&) { 14 n--; 15 } ~Foo()16 ~Foo() { 17 n++; 18 } 19 }; 20 21 struct Data {}; 22 a()23void a() 24 { 25 Data b; 26 } 27 main(int argc,char * argv[])28int main(int argc, char *argv[]) { 29 auto fn = [] (const Foo<Data>& x) { 30 return (x); 31 }; 32 33 { 34 Foo<Data> a; 35 fn(a); 36 } 37 38 assert(n == 0); 39 } 40