From 7c98f9f5c3202a0b11eda7f30b4edd8cb4d1139c Mon Sep 17 00:00:00 2001 From: Jordan Rose Date: Fri, 20 Sep 2013 16:51:50 +0000 Subject: [PATCH] [analyzer] Use getParentIgnoreParenCasts instead of doing it by hand. Apart from being more compact and already implemented, this also handles the case where the parent is null. (It does also ignore all casts, not just implicit ones, but this is more efficient to test and in the case we care about---a message in a PseudoObjectExpr---there should only be implicit casts anyway. This should fix our internal buildbot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191094 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/StaticAnalyzer/Core/CallEvent.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/StaticAnalyzer/Core/CallEvent.cpp b/lib/StaticAnalyzer/Core/CallEvent.cpp index 4f8683f785..64a4f8d69e 100644 --- a/lib/StaticAnalyzer/Core/CallEvent.cpp +++ b/lib/StaticAnalyzer/Core/CallEvent.cpp @@ -688,9 +688,7 @@ ObjCMessageKind ObjCMethodCall::getMessageKind() const { // Find the parent, ignoring implicit casts. ParentMap &PM = getLocationContext()->getParentMap(); - const Stmt *S = PM.getParent(getOriginExpr()); - while (isa(S)) - S = PM.getParent(S); + const Stmt *S = PM.getParentIgnoreParenCasts(getOriginExpr()); // Check if parent is a PseudoObjectExpr. if (const PseudoObjectExpr *POE = dyn_cast_or_null(S)) { -- 2.40.0