mirror of
https://github.com/intel/llvm.git
synced 2026-02-02 10:08:59 +08:00
[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 llvm-svn: 324053
This commit is contained in:
@@ -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<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);
|
||||
|
||||
Reference in New Issue
Block a user