1// RUN: %clang_cc1 -fsyntax-only -verify %s 2 3void f1() { 4 struct X { 5 struct Y; 6 }; 7 8 struct X::Y { 9 void f() {} 10 }; 11} 12 13void f2() { 14 struct X { 15 struct Y; 16 17 struct Y { 18 void f() {} 19 }; 20 }; 21} 22 23// A class nested within a local class is a local class. 24void f3(int a) { // expected-note{{'a' declared here}} 25 struct X { 26 struct Y { 27 int f() { return a; } // expected-error{{reference to local variable 'a' declared in enclosing function 'f3'}} 28 }; 29 }; 30} 31