diff options
Diffstat (limited to 'clang/Analysis/GRExprEngine.cpp')
-rw-r--r-- | clang/Analysis/GRExprEngine.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/Analysis/GRExprEngine.cpp b/clang/Analysis/GRExprEngine.cpp index 674454c7cd3..c911064b99f 100644 --- a/clang/Analysis/GRExprEngine.cpp +++ b/clang/Analysis/GRExprEngine.cpp @@ -40,7 +40,7 @@ GRExprEngine::SetRVal(StateTy St, Expr* Ex, const RVal& V) { return St; } - return StateMgr.SetRVal(St, Ex, isBlkExpr, V); + return StateMgr.SetRVal(St, Ex, V, isBlkExpr, false); } const GRExprEngine::StateTy::BufferTy& @@ -606,7 +606,9 @@ void GRExprEngine::VisitGuardedExpr(Expr* Ex, Expr* L, Expr* R, assert (SE); X = GetBlkExprRVal(St, SE); - Nodify(Dst, Ex, Pred, SetBlkExprRVal(St, Ex, X)); + + // Make sure that we invalidate the previous binding. + Nodify(Dst, Ex, Pred, StateMgr.SetRVal(St, Ex, X, true, true)); } /// VisitSizeOfAlignOfTypeExpr - Transfer function for sizeof(type). |