From cd369d49a2ea70390c28d51f391f00f57195738b Mon Sep 17 00:00:00 2001 From: Artem Dergachev Date: Fri, 2 Feb 2018 02:23:37 +0000 Subject: [PATCH] [analyzer] Fix transitions in check::PreStmt checker callback. No in-tree checkers use this callback so far, hence no tests. But better fix this now than remember to fix this when the checkers actually appear. Patch by Henry Wong! Differential Revision: https://reviews.llvm.org/D42785 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@324053 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/StaticAnalyzer/Core/ExprEngine.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/StaticAnalyzer/Core/ExprEngine.cpp b/lib/StaticAnalyzer/Core/ExprEngine.cpp index 055152dd52..bea9314afb 100644 --- a/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ b/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -2251,16 +2251,15 @@ void ExprEngine::VisitMemberExpr(const MemberExpr *M, ExplodedNode *Pred, ExplodedNodeSet CheckedSet; getCheckerManager().runCheckersForPreStmt(CheckedSet, Pred, M, *this); - ExplodedNodeSet EvalSet; - ValueDecl *Member = M->getMemberDecl(); + ExplodedNodeSet EvalSet; + ValueDecl *Member = M->getMemberDecl(); // Handle static member variables and enum constants accessed via // member syntax. - if (isa(Member) || isa(Member)) { - ExplodedNodeSet Dst; + if (isa(Member) || isa(Member)) { for (ExplodedNodeSet::iterator I = CheckedSet.begin(), E = CheckedSet.end(); I != E; ++I) { - VisitCommonDeclRefExpr(M, Member, Pred, EvalSet); + VisitCommonDeclRefExpr(M, Member, *I, EvalSet); } } else { StmtNodeBuilder Bldr(CheckedSet, EvalSet, *currBldrCtx); -- 2.40.0