brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 245e270 Raw
41 lines · cpp
1// RUN: %clang_cc1 -std=c++11 %s -verify2 3int GlobalVar; // expected-note {{declared here}}4 5namespace N {6  int AmbiguousVar; // expected-note {{candidate}}7}8int AmbiguousVar; // expected-note {{candidate}}9using namespace N;10 11class X0 {12  int Member;13 14  static void Overload(int);15  void Overload();16  virtual X0& Overload(float);17 18  void explicit_capture() {19    int variable; // expected-note {{declared here}}20    (void)[&Overload] () {}; // expected-error {{does not name a variable}} 21    (void)[&GlobalVar] () {}; // expected-error {{does not have automatic storage duration}} 22    (void)[&AmbiguousVar] () {}; // expected-error {{reference to 'AmbiguousVar' is ambiguous}} 23    (void)[&Variable] () {}; // expected-error {{use of undeclared identifier 'Variable'; did you mean 'variable'}}24  }25};26 27void test_reaching_scope() {28  int local; // expected-note{{declared here}}29  static int local_static; // expected-note{{'local_static' declared here}}30  (void)[=]() {31    struct InnerLocal {32      void member() {33        (void)[local, // expected-error{{reference to local variable 'local' declared in enclosing function 'test_reaching_scope'}}34               local_static]() { // expected-error{{'local_static' cannot be captured because it does not have automatic storage duration}}35          return 0;36        };37      }38    };39  };40}41