GRExprEngine::ProcessBranch: Don't register a "pretty-stack printer" when the Condition is null.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66636 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp
index c6457d9..6ff01fc 100644
--- a/lib/Analysis/GRExprEngine.cpp
+++ b/lib/Analysis/GRExprEngine.cpp
@@ -543,10 +543,6 @@
void GRExprEngine::ProcessBranch(Stmt* Condition, Stmt* Term,
BranchNodeBuilder& builder) {
- PrettyStackTraceLoc CrashInfo(getContext().getSourceManager(),
- Condition->getLocStart(),
- "Error evaluating branch");
-
// Remove old bindings for subexpressions.
const GRState* PrevState =
StateMgr.RemoveSubExprBindings(builder.getState());
@@ -557,6 +553,10 @@
return;
}
+ PrettyStackTraceLoc CrashInfo(getContext().getSourceManager(),
+ Condition->getLocStart(),
+ "Error evaluating branch");
+
SVal V = GetSVal(PrevState, Condition);
switch (V.getBaseKind()) {
@@ -2380,11 +2380,10 @@
continue;
}
- // Handle all other values.
-
+ // Handle all other values.
BinaryOperator::Opcode Op = U->isIncrementOp() ? BinaryOperator::Add
: BinaryOperator::Sub;
-
+
SVal Result = EvalBinOp(Op, V2, MakeConstantVal(1U, U));
state = BindExpr(state, U, U->isPostfix() ? V2 : Result);