[cfe-commits] r147982 - in /cfe/trunk: lib/Sema/SemaDecl.cpp test/SemaObjC/ContClassPropertyLookup.m

Fariborz Jahanian fjahanian at apple.com
Wed Jan 11 16:18:35 PST 2012


Author: fjahanian
Date: Wed Jan 11 18:18:35 2012
New Revision: 147982

URL: http://llvm.org/viewvc/llvm-project?rev=147982&view=rev
Log:
objective-c: fixes a regression in looking up names
in class extensions and categories by recent refactoring
of objc class ASTs. // rdar://1066654

Modified:
    cfe/trunk/lib/Sema/SemaDecl.cpp
    cfe/trunk/test/SemaObjC/ContClassPropertyLookup.m

Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=147982&r1=147981&r2=147982&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
+++ cfe/trunk/lib/Sema/SemaDecl.cpp Wed Jan 11 18:18:35 2012
@@ -1255,8 +1255,11 @@
       Id = IDecl->getIdentifier();
     }
   }
-
-  return dyn_cast_or_null<ObjCInterfaceDecl>(IDecl);
+  ObjCInterfaceDecl *Def = dyn_cast_or_null<ObjCInterfaceDecl>(IDecl);
+  // This routine must always return a class definition, if any.
+  if (Def && Def->getDefinition())
+      Def = Def->getDefinition();
+  return Def;
 }
 
 /// getNonFieldDeclScope - Retrieves the innermost scope, starting

Modified: cfe/trunk/test/SemaObjC/ContClassPropertyLookup.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/ContClassPropertyLookup.m?rev=147982&r1=147981&r2=147982&view=diff
==============================================================================
--- cfe/trunk/test/SemaObjC/ContClassPropertyLookup.m (original)
+++ cfe/trunk/test/SemaObjC/ContClassPropertyLookup.m Wed Jan 11 18:18:35 2012
@@ -16,3 +16,23 @@
 @implementation MyObject
 @synthesize foo = _foo;
 @end
+
+// rdar://10666594
+ at interface MPMediaItem
+ at end
+
+ at class MPMediaItem;
+
+ at interface MPMediaItem ()
+ at property (nonatomic, readonly) id title;
+ at end
+
+ at interface PodcastEpisodesViewController
+ at end
+
+ at implementation PodcastEpisodesViewController
+- (id) Meth {
+    MPMediaItem *episode;
+    return episode.title;
+}
+ at end





More information about the cfe-commits mailing list