aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/AST/ExprObjC.h3
-rw-r--r--lib/Sema/SemaExpr.cpp4
2 files changed, 4 insertions, 3 deletions
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()));