Author: dergachev Date: Thu Feb 1 18:23:37 2018 New Revision: 324053 URL: http://llvm.org/viewvc/llvm-project?rev=324053&view=rev Log: [analyzer] Fix transitions in check::PreStmt<MemberExpr> 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 Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp Modified: cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp?rev=324053&r1=324052&r2=324053&view=diff ============================================================================== --- cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp (original) +++ cfe/trunk/lib/StaticAnalyzer/Core/ExprEngine.cpp Thu Feb 1 18:23:37 2018 @@ -2251,16 +2251,15 @@ void ExprEngine::VisitMemberExpr(const M 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<VarDecl>(Member) || isa<EnumConstantDecl>(Member)) { - ExplodedNodeSet Dst; + if (isa<VarDecl>(Member) || isa<EnumConstantDecl>(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); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits