diff --git a/clang/lib/Sema/SemaDeclObjC.cpp b/clang/lib/Sema/SemaDeclObjC.cpp index 7e5e40c56262..eb3f4222b695 100644 --- a/clang/lib/Sema/SemaDeclObjC.cpp +++ b/clang/lib/Sema/SemaDeclObjC.cpp @@ -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) diff --git a/clang/test/SemaObjCXX/linkage-spec.mm b/clang/test/SemaObjCXX/linkage-spec.mm index b4e809eee161..1454e6a6782c 100644 --- a/clang/test/SemaObjCXX/linkage-spec.mm +++ b/clang/test/SemaObjCXX/linkage-spec.mm @@ -2,3 +2,11 @@ extern "C" { @class Protocol; } + +// +extern "C" { +@class I; +} + +@interface I +@end