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