1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 void f1() { 4 struct X { 5 struct Y; 6 }; 7 8 struct X::Y { 9 void f() {} 10 }; 11 } 12 13 void 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. 24 void 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