|  | // 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; | 
|  | }; | 
|  | } | 
|  | }; | 
|  | }; | 
|  | } |