// RUN: %clang_cc1 -fsyntax-only -verify %s | |
void f1() { | |
struct X { | |
struct Y; | |
}; | |
struct X::Y { | |
void f() {} | |
}; | |
} | |
void f2() { | |
struct X { | |
struct Y; | |
struct Y { | |
void f() {} | |
}; | |
}; | |
} | |
// A class nested within a local class is a local class. | |
void f3(int a) { // expected-note{{'a' declared here}} | |
struct X { | |
struct Y { | |
int f() { return a; } // expected-error{{reference to local variable 'a' declared in enclosed function 'f3'}} | |
}; | |
}; | |
} |