31 lines · cpp
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