brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · d8ba372 Raw
41 lines · cpp
1// RUN: %clang_cc1 -std=c++11 %s -Wunused -Wno-unused-lambda-capture -verify2 3 4struct X {5  X(const X&) = delete; // expected-note 2{{explicitly marked deleted}}6  X(X&);7};8 9void test_capture(X x) {10  [x] { }(); // okay: non-const copy ctor11 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 reference of type 'int' to value of type 'const int' drops 'const' qualifier}}28      int &x2 = a; // expected-error{{binding reference of type 'int' to value of type 'const int' drops 'const' qualifier}}29    }();30  }();31 32  [=] {33    [&a] {34      [&] {35        int &x = a;  // expected-error{{binding reference of type 'int' to value of type 'const int' drops 'const' qualifier}}36        int &x2 = a; // expected-error{{binding reference of type 'int' to value of type 'const int' drops 'const' qualifier}}37      }();38    }();39  }();40}41