From f178728e8cb972a8a8923ba75b4ef7367b641626 Mon Sep 17 00:00:00 2001 From: Steve Naroff Date: Wed, 11 Mar 2009 15:15:01 +0000 Subject: [PATCH] Fix clang issues bogus error on property usage in a dot-syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66659 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaExpr.cpp | 16 ++++++-------- test/SemaObjC/property-9-impl-method.m | 30 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 9534f7354f..9a86d65f9a 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -1866,11 +1866,9 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, // If this reference is in an @implementation, check for 'private' methods. if (!Getter) - if (ObjCMethodDecl *CurMeth = getCurMethodDecl()) - if (ObjCInterfaceDecl *ClassDecl = CurMeth->getClassInterface()) - if (ObjCImplementationDecl *ImpDecl = - ObjCImplementations[ClassDecl->getIdentifier()]) - Getter = ImpDecl->getInstanceMethod(Sel); + if (ObjCImplementationDecl *ImpDecl = + ObjCImplementations[IFace->getIdentifier()]) + Getter = ImpDecl->getInstanceMethod(Sel); // Look through local category implementations associated with the class. if (!Getter) { @@ -1893,11 +1891,9 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, if (!Setter) { // If this reference is in an @implementation, also check for 'private' // methods. - if (ObjCMethodDecl *CurMeth = getCurMethodDecl()) - if (ObjCInterfaceDecl *ClassDecl = CurMeth->getClassInterface()) - if (ObjCImplementationDecl *ImpDecl = - ObjCImplementations[ClassDecl->getIdentifier()]) - Setter = ImpDecl->getInstanceMethod(SetterSel); + if (ObjCImplementationDecl *ImpDecl = + ObjCImplementations[IFace->getIdentifier()]) + Setter = ImpDecl->getInstanceMethod(SetterSel); } // Look through local category implementations associated with the class. if (!Setter) { diff --git a/test/SemaObjC/property-9-impl-method.m b/test/SemaObjC/property-9-impl-method.m index e9e81bd55f..e684c5ecae 100644 --- a/test/SemaObjC/property-9-impl-method.m +++ b/test/SemaObjC/property-9-impl-method.m @@ -62,3 +62,33 @@ NSSize minimumSize; } @end +@class NSImage; + +@interface XCImageArchiveEntry : NSObject +{ + NSImage *_cachedImage; +} + +@end + +@implementation XCImageArchiveEntry + +- (NSImage *)image +{ + return _cachedImage; +} + +@end + +@interface XCImageArchive : NSObject +@end + +@implementation XCImageArchive + +- (NSImage *)imageNamed:(NSString *)name +{ + XCImageArchiveEntry * entry; + return entry ? entry.image : ((void *)0); +} + +@end -- 2.40.0