p10.cpp
1.32 KB
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
// RUN: %clang_cc1 -std=c++11 %s -verify
int GlobalVar; // expected-note {{declared here}}
namespace N {
int AmbiguousVar; // expected-note {{candidate}}
}
int AmbiguousVar; // expected-note {{candidate}}
using namespace N;
class X0 {
int Member;
static void Overload(int);
void Overload();
virtual X0& Overload(float);
void explicit_capture() {
int variable; // expected-note {{declared here}}
(void)[&Overload] () {}; // expected-error {{does not name a variable}}
(void)[&GlobalVar] () {}; // expected-error {{does not have automatic storage duration}}
(void)[&AmbiguousVar] () {}; // expected-error {{reference to 'AmbiguousVar' is ambiguous}}
(void)[&Variable] () {}; // expected-error {{use of undeclared identifier 'Variable'; did you mean 'variable'}}
}
};
void test_reaching_scope() {
int local; // expected-note{{declared here}}
static int local_static; // expected-note{{'local_static' declared here}}
(void)[=]() {
struct InnerLocal {
void member() {
(void)[local, // expected-error{{reference to local variable 'local' declared in enclosing function 'test_reaching_scope'}}
local_static]() { // expected-error{{'local_static' cannot be captured because it does not have automatic storage duration}}
return 0;
};
}
};
};
}