[cfe-commits] r100903 - in /cfe/trunk: lib/Sema/SemaDeclObjC.cpp test/SemaObjCXX/linkage-spec.mm

Douglas Gregor dgregor at apple.com
Fri Apr 9 14:30:38 PDT 2010


Author: dgregor
Date: Fri Apr  9 16:30:38 2010
New Revision: 100903

URL: http://llvm.org/viewvc/llvm-project?rev=100903&view=rev
Log:
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>

Modified:
    cfe/trunk/lib/Sema/SemaDeclObjC.cpp
    cfe/trunk/test/SemaObjCXX/linkage-spec.mm

Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=100903&r1=100902&r2=100903&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Fri Apr  9 16:30:38 2010
@@ -98,6 +98,7 @@
       // 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)

Modified: cfe/trunk/test/SemaObjCXX/linkage-spec.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/linkage-spec.mm?rev=100903&r1=100902&r2=100903&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjCXX/linkage-spec.mm (original)
+++ cfe/trunk/test/SemaObjCXX/linkage-spec.mm Fri Apr  9 16:30:38 2010
@@ -2,3 +2,11 @@
 extern "C" {
 @class Protocol;
 }
+
+// <rdar://problem/7827709>
+extern "C" {
+ at class I;
+}
+
+ at interface I
+ at end





More information about the cfe-commits mailing list