From: Anna Zaks Date: Fri, 14 Dec 2012 19:08:20 +0000 (+0000) Subject: [analyzer] Propagate the checker's state from checkBranchCondition X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a40bcac0ef14489e0cbde6c5637598ceae3f77d8;p=platform%2Fupstream%2Fllvm.git [analyzer] Propagate the checker's state from checkBranchCondition Fixes a bug, where we were dropping the state modifications from the checkBranchCondition checker callback. llvm-svn: 170232 --- diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp index 2657573..5c91dd2 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -1217,8 +1217,8 @@ void ExprEngine::processBranch(const Stmt *Condition, const Stmt *Term, if (PredI->isSink()) continue; - ProgramStateRef PrevState = Pred->getState(); - SVal X = PrevState->getSVal(Condition, Pred->getLocationContext()); + ProgramStateRef PrevState = PredI->getState(); + SVal X = PrevState->getSVal(Condition, PredI->getLocationContext()); if (X.isUnknownOrUndef()) { // Give it a chance to recover from unknown. @@ -1230,7 +1230,7 @@ void ExprEngine::processBranch(const Stmt *Condition, const Stmt *Term, // underlying value and use that instead. SVal recovered = RecoverCastedSymbol(getStateManager(), PrevState, Condition, - Pred->getLocationContext(), + PredI->getLocationContext(), getContext()); if (!recovered.isUnknown()) {