10a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 20a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman 30a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedmanvoid f() { 40a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman int x = 3; // expected-note{{'x' declared here}} 50a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman const int c = 2; 60a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman struct C { 70a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman int& x2 = x; // expected-error{{reference to local variable 'x' declared in enclosing function 'f'}} 80a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman int cc = c; 90a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman }; 10b326ca8ffbea96f9cc8a457b0f57be880304a6f5Douglas Gregor (void)[]() mutable { 110a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman int x = 3; // expected-note{{'x' declared here}} 120a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman struct C { 130a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman int& x2 = x; // expected-error{{reference to local variable 'x' declared in enclosing lambda expression}} 140a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman }; 15503384f731b5abcbf870b0a5224eb920e631db0aDouglas Gregor }; 160a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman C(); 170a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman} 180a29422eb722c0ffbb98b98d8636042b19069f1aEli Friedman 19