blob: 15879a1ebc0fbf9c46c19d3ae9d4e89c0fe70e35 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// 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
}
};
|