From: Steve Naroff Date: Wed, 29 Jul 2009 14:06:03 +0000 (+0000) Subject: Incorporate feedback from Chris (on r76979). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=99b10be143e3148b9499af4c0e9ebaf46757cfe6;p=clang Incorporate feedback from Chris (on r76979). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77452 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/ExprObjC.h b/include/clang/AST/ExprObjC.h index d610b3c01e..16c5d6e0ea 100644 --- a/include/clang/AST/ExprObjC.h +++ b/include/clang/AST/ExprObjC.h @@ -496,7 +496,8 @@ public: virtual child_iterator child_end(); }; -/// ObjCIsaExpr - Represent X->isa and X.isa (similiar in spirit to MemberExpr). +/// ObjCIsaExpr - Represent X->isa and X.isa when X is an ObjC 'id' type. +/// (similiar in spirit to MemberExpr). class ObjCIsaExpr : public Expr { /// Base - the expression for the base object pointer. Stmt *Base; diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index ba9d51dfb5..9114c0b5c1 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/lib/Sema/SemaExpr.cpp @@ -2341,7 +2341,7 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, } // We have an 'id' type. Rather than fall through, we check if this // is a reference to 'isa'. - if (&Member == &Context.Idents.get("isa")) + if (Member.isStr("isa")) return Owned(new (Context) ObjCIsaExpr(BaseExpr, true, MemberLoc, Context.getObjCIdType())); } @@ -2478,7 +2478,7 @@ Sema::ActOnMemberReferenceExpr(Scope *S, ExprArg Base, SourceLocation OpLoc, // Handle the following exceptional case (*Obj).isa. if (OpKind == tok::period && BaseType->isSpecificBuiltinType(BuiltinType::ObjCId) && - &Member == &Context.Idents.get("isa")) + Member.isStr("isa")) return Owned(new (Context) ObjCIsaExpr(BaseExpr, false, MemberLoc, Context.getObjCIdType()));