diff options
Diffstat (limited to 'lib/Analysis/GRTransferFuncs.cpp')
-rw-r--r-- | lib/Analysis/GRTransferFuncs.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/lib/Analysis/GRTransferFuncs.cpp b/lib/Analysis/GRTransferFuncs.cpp index cf32a073c1..9d9c97f0ed 100644 --- a/lib/Analysis/GRTransferFuncs.cpp +++ b/lib/Analysis/GRTransferFuncs.cpp @@ -38,17 +38,11 @@ void GRTransferFuncs::EvalStore(ExplodedNodeSet<ValueState>& Dst, Eng.getStateManager().SetRVal(St, cast<LVal>(TargetLV), Val)); } -void GRTransferFuncs::EvalBinOpNN(ExplodedNodeSet<ValueState>& Dst, - GRExprEngine& Engine, - GRStmtNodeBuilder<ValueState>& Builder, +void GRTransferFuncs::EvalBinOpNN(ValueStateSet& OStates, + ValueStateManager& StateMgr, + const ValueState *St, Expr* Ex, BinaryOperator::Opcode Op, - Expr* Ex, - NonLVal L, NonLVal R, - ExplodedNode<ValueState>* Pred) { - - ValueStateManager& StateMgr = Engine.getStateManager(); - const ValueState* St = Builder.GetState(Pred); + NonLVal L, NonLVal R) { - RVal Result = EvalBinOp(Engine, Op, L, R); - Builder.MakeNode(Dst, Ex, Pred, StateMgr.SetRVal(St, Ex, Result)); + OStates.Add(StateMgr.SetRVal(St, Ex, EvalBinOp(StateMgr, Op, L, R))); } |