diff options
author | Ted Kremenek <kremenek@apple.com> | 2009-03-11 03:54:24 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2009-03-11 03:54:24 +0000 |
commit | 21028dd8850c64a414f7a82dfddcc291351203d6 (patch) | |
tree | bf6b8106d26ff87deb4f4588e33d6b127985d8bd | |
parent | 4018a28ba12c9cbc0e41101bc5d8c1c2d78e355e (diff) |
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
-rw-r--r-- | lib/Analysis/GRExprEngine.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/Analysis/GRExprEngine.cpp b/lib/Analysis/GRExprEngine.cpp index c6457d9be3..6ff01fc5c9 100644 --- a/lib/Analysis/GRExprEngine.cpp +++ b/lib/Analysis/GRExprEngine.cpp @@ -543,10 +543,6 @@ const GRState* GRExprEngine::MarkBranch(const GRState* state, 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 @@ void GRExprEngine::ProcessBranch(Stmt* Condition, Stmt* Term, return; } + PrettyStackTraceLoc CrashInfo(getContext().getSourceManager(), + Condition->getLocStart(), + "Error evaluating branch"); + SVal V = GetSVal(PrevState, Condition); switch (V.getBaseKind()) { @@ -2380,11 +2380,10 @@ void GRExprEngine::VisitUnaryOperator(UnaryOperator* U, NodeTy* Pred, 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); |