2 // { dg-do run { target c++11 } }
8 std::function<void()> broken(int x) {
9 return [=] { +x; print<T>(); };
12 std::function<void()> works0() {
13 return [=] { print<int>(); };
17 std::function<void()> works1() {
18 return [=] { print<int>(); };
22 std::function<void()> works2() {
23 return [=] { this->print<T>(); };
27 void print() { if (this == 0) __builtin_abort (); }
31 test().broken<int>(1)();
33 test().works1<int>()();
34 test().works2<int>()();