// RUN: %clang_cc1 -std=c++11 %s -Wunused -verify void odr_used() { int i = 17; [i]{}(); } struct ReachingThis { static void static_foo() { (void)[this](){}; // expected-error{{'this' cannot be captured in this context}} struct Local { int i; void bar() { (void)[this](){}; (void)[&](){i = 7; }; } }; } void foo() { (void)[this](){}; struct Local { int i; static void static_bar() { (void)[this](){}; // expected-error{{'this' cannot be captured in this context}} (void)[&](){i = 7; }; // expected-error{{invalid use of nonstatic data member 'i'}} } }; } }; void immediately_enclosing(int i) { // expected-note{{'i' declared here}} [i]() { [i] {}(); }(); [=]() { [i] {}(); }(); []() { // expected-note{{lambda expression begins here}} [i] {}(); // expected-error{{variable 'i' cannot be implicitly captured in a lambda with no capture-default specified}} }(); }