Plug-in transfer function "EvalCall" now takes as an argument the current
GRStmtNodeBuilder and is now responsible for adding its own nodes to the graph.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47923 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Analysis/GRSimpleVals.cpp b/Analysis/GRSimpleVals.cpp
index fbaccba..d8a3112 100644
--- a/Analysis/GRSimpleVals.cpp
+++ b/Analysis/GRSimpleVals.cpp
@@ -397,9 +397,14 @@
// Transfer function for Function Calls.
//===----------------------------------------------------------------------===//
-ValueState*
-GRSimpleVals::EvalCall(ValueStateManager& StateMgr, ValueManager& ValMgr,
- CallExpr* CE, LVal L, ValueState* St) {
+void GRSimpleVals::EvalCall(ExplodedNodeSet<ValueState>& Dst,
+ ValueStateManager& StateMgr,
+ GRStmtNodeBuilder<ValueState>& Builder,
+ ValueManager& ValMgr,
+ CallExpr* CE, LVal L,
+ ExplodedNode<ValueState>* Pred) {
+
+ ValueState* St = Pred->getState();
// Invalidate all arguments passed in by reference (LVals).
@@ -411,6 +416,6 @@
if (isa<LVal>(V))
St = StateMgr.SetRVal(St, cast<LVal>(V), UnknownVal());
}
-
- return St;
+
+ Builder.Nodify(Dst, CE, Pred, St);
}