blob: fa873d8af329fe1099798edf44c1d18cf57a8628 [file] [log] [blame]
Anders Carlssone41590d2009-06-24 00:10:43 +00001// RUN: clang-cc -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 {
Mike Stumpf0a6a0c2009-07-21 19:03:43 +000027 int f() {
28 return a; // expected-error{{reference to local variable 'a' declared in enclosed function 'f3'}}
29 return 1;
30 }
Anders Carlssone41590d2009-06-24 00:10:43 +000031 };
32 };
Mike Stumpf0a6a0c2009-07-21 19:03:43 +000033}