blob: 15879a1ebc0fbf9c46c19d3ae9d4e89c0fe70e35 [file] [log] [blame]
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -fblocks
void test_nest_lambda() {
int x;
int y;
[&,y]() {
int z;
#pragma clang __debug captured
{
x = y; // OK
y = z; // expected-error{{cannot assign to a variable captured by copy in a non-mutable lambda}}
z = y; // OK
}
}();
int a;
#pragma clang __debug captured
{
int b;
int c;
[&,c]() {
a = b; // OK
b = c; // OK
c = a; // expected-error{{cannot assign to a variable captured by copy in a non-mutable lambda}}
}();
}
}
class test_obj_capture {
int a;
void b();
static void test() {
test_obj_capture c;
#pragma clang __debug captured
{ (void)c.a; } // OK
#pragma clang __debug captured
{ c.b(); } // OK
}
};
class test_this_capture {
int a;
void b();
void test() {
#pragma clang __debug captured
{ (void)this; } // OK
#pragma clang __debug captured
{ (void)a; } // OK
#pragma clang __debug captured
{ b(); } // OK
}
};