When upgrading an Objective-C class from a forward declaration to a

full-fledged @interface, be sure that the declaration has the right
lexical context. <rdar://problem/7827709>

llvm-svn: 100903
This commit is contained in:
Douglas Gregor 2010-04-09 21:30:38 +00:00
parent 06aa50417d
commit 530805711f
2 changed files with 9 additions and 0 deletions

View File

@ -98,6 +98,7 @@ ActOnStartClassInterface(SourceLocation AtInterfaceLoc,
// Since this ObjCInterfaceDecl was created by a forward declaration,
// we now add it to the DeclContext since it wasn't added before
// (see ActOnForwardClassDeclaration).
IDecl->setLexicalDeclContext(CurContext);
CurContext->addDecl(IDecl);
if (AttrList)

View File

@ -2,3 +2,11 @@
extern "C" {
@class Protocol;
}
// <rdar://problem/7827709>
extern "C" {
@class I;
}
@interface I
@end