forked from OSchip/llvm-project
[analyzer] Make sure the child builder use temporary destination sets
The parent and child builders should not share node sets. llvm-svn: 143515
This commit is contained in:
parent
6d319489df
commit
bfb3520fc5
|
|
@ -432,11 +432,12 @@ void ExprEngine::ProcessTemporaryDtor(const CFGTemporaryDtor D,
|
|||
ExplodedNodeSet &Dst) {}
|
||||
|
||||
void ExprEngine::Visit(const Stmt *S, ExplodedNode *Pred,
|
||||
ExplodedNodeSet &Dst) {
|
||||
ExplodedNodeSet &DstTop) {
|
||||
PrettyStackTraceLoc CrashInfo(getContext().getSourceManager(),
|
||||
S->getLocStart(),
|
||||
"Error evaluating statement");
|
||||
StmtNodeBuilder Bldr(Pred, Dst, *currentBuilderContext);
|
||||
ExplodedNodeSet Dst;
|
||||
StmtNodeBuilder Bldr(Pred, DstTop, *currentBuilderContext);
|
||||
|
||||
// Expressions to ignore.
|
||||
if (const Expr *Ex = dyn_cast<Expr>(S))
|
||||
|
|
@ -1283,9 +1284,10 @@ void ExprEngine::VisitLvalArraySubscriptExpr(const ArraySubscriptExpr *A,
|
|||
|
||||
/// VisitMemberExpr - Transfer function for member expressions.
|
||||
void ExprEngine::VisitMemberExpr(const MemberExpr *M, ExplodedNode *Pred,
|
||||
ExplodedNodeSet &Dst) {
|
||||
ExplodedNodeSet &TopDst) {
|
||||
|
||||
StmtNodeBuilder Bldr(Pred, Dst, *currentBuilderContext);
|
||||
StmtNodeBuilder Bldr(Pred, TopDst, *currentBuilderContext);
|
||||
ExplodedNodeSet Dst;
|
||||
Decl *member = M->getMemberDecl();
|
||||
if (VarDecl *VD = dyn_cast<VarDecl>(member)) {
|
||||
assert(M->isLValue());
|
||||
|
|
|
|||
|
|
@ -369,8 +369,9 @@ void ExprEngine::VisitDeclStmt(const DeclStmt *DS, ExplodedNode *Pred,
|
|||
currentBuilderContext->getCurrentBlockCount());
|
||||
}
|
||||
B.takeNodes(N);
|
||||
evalBind(Dst, DS, N, state->getLValue(VD, LC), InitVal, true);
|
||||
B.addNodes(Dst);
|
||||
ExplodedNodeSet Dst2;
|
||||
evalBind(Dst2, DS, N, state->getLValue(VD, LC), InitVal, true);
|
||||
B.addNodes(Dst2);
|
||||
}
|
||||
else {
|
||||
B.generateNode(DS, N,state->bindDeclWithNoInit(state->getRegion(VD, LC)));
|
||||
|
|
|
|||
Loading…
Reference in New Issue