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