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