1 // RUN: %clang_cc1 -std=c++11 %s -Wunused -verify 2 3 4 struct X { 5 X(const X&) = delete; // expected-note 2{{explicitly marked deleted}} 6 X(X&); 7 }; 8 9 void test_capture(X x) { 10 [x] { }(); // okay: non-const copy ctor 11 12 [x] { 13 [x] { // expected-error{{call to deleted constructor of 'X'}} 14 }(); 15 }(); 16 17 [x] { 18 [&x] { 19 [x] { // expected-error{{call to deleted constructor of 'const X'}} 20 }(); 21 }(); 22 }(); 23 24 int a; 25 [=]{ 26 [&] { 27 int &x = a; // expected-error{{binding of reference to type 'int' to a value of type 'const int' drops qualifiers}} 28 int &x2 = a; // expected-error{{binding of reference to type 'int' to a value of type 'const int' drops qualifiers}} 29 }(); 30 }(); 31 32 [=]{ 33 [&a] { 34 [&] { 35 int &x = a; // expected-error{{binding of reference to type 'int' to a value of type 'const int' drops qualifiers}} 36 int &x2 = a; // expected-error{{binding of reference to type 'int' to a value of type 'const int' drops qualifiers}} 37 }(); 38 }(); 39 }(); 40 } 41