diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Sema/SemaExpr.cpp | 11 | ||||
-rw-r--r-- | clang/lib/Sema/SemaExprObjC.cpp | 2 |
2 files changed, 5 insertions, 8 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 13f7ff9fb71..9813acbd045 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -654,13 +654,10 @@ ActOnMemberReferenceExpr(ExprTy *Base, SourceLocation OpLoc, return new ObjCPropertyRefExpr(PD, PD->getType(), MemberLoc, BaseExpr); // Lastly, check protocols on qualified interfaces. - if (const ObjCQualifiedInterfaceType *QIT = - dyn_cast<ObjCQualifiedInterfaceType>(IFTy)) { - for (unsigned i = 0; i != QIT->getNumProtocols(); ++i) - if (ObjCPropertyDecl *PD = - QIT->getProtocols(i)->FindPropertyDeclaration(&Member)) - return new ObjCPropertyRefExpr(PD, PD->getType(), MemberLoc,BaseExpr); - } + for (ObjCInterfaceType::qual_iterator I = IFTy->qual_begin(), + E = IFTy->qual_end(); I != E; ++I) + if (ObjCPropertyDecl *PD = (*I)->FindPropertyDeclaration(&Member)) + return new ObjCPropertyRefExpr(PD, PD->getType(), MemberLoc, BaseExpr); } // Handle 'field access' to vectors, such as 'V.xx'. diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index abbc7666e90..e8830bc0ddf 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -284,7 +284,7 @@ Sema::ExprResult Sema::ActOnInstanceMessage( if (!Method) { // search protocols for (unsigned i = 0; i < QIT->getNumProtocols(); i++) { - ObjCProtocolDecl *PDecl = QIT->getProtocols(i); + ObjCProtocolDecl *PDecl = QIT->getProtocol(i); if (PDecl && (Method = PDecl->lookupInstanceMethod(Sel))) break; } |