173d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor// RUN: %clang_cc1 -std=c++11 %s -verify 273d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor 373d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregorvoid test_reaching_scope() { 473d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor int local; // expected-note{{declared here}} 573d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor static int local_static; 673d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor (void)[=]() { 773d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor struct InnerLocal { 873d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor void member() { 973d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor (void)[=]() { 1073d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor return local + // expected-error{{reference to local variable 'local' declared in enclosing function 'test_reaching_scope'}} 1173d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor local_static; 1273d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor }; 1373d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor } 1473d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor }; 1573d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor }; 1673d90928c0462daf0665fd7f8e44ca00d896540dDouglas Gregor} 17