summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/IPA/CallGraph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Analysis/IPA/CallGraph.cpp')
-rw-r--r--llvm/lib/Analysis/IPA/CallGraph.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/IPA/CallGraph.cpp b/llvm/lib/Analysis/IPA/CallGraph.cpp
index 46c044a3843..083b22d0170 100644
--- a/llvm/lib/Analysis/IPA/CallGraph.cpp
+++ b/llvm/lib/Analysis/IPA/CallGraph.cpp
@@ -32,6 +32,15 @@ CallGraph::CallGraph(Module &M)
Root = ExternalCallingNode;
}
+CallGraph::CallGraph(CallGraph &&Arg)
+ : M(Arg.M), FunctionMap(std::move(Arg.FunctionMap)), Root(Arg.Root),
+ ExternalCallingNode(Arg.ExternalCallingNode),
+ CallsExternalNode(std::move(Arg.CallsExternalNode)) {
+ Arg.FunctionMap.clear();
+ Arg.Root = nullptr;
+ Arg.ExternalCallingNode = nullptr;
+}
+
CallGraph::~CallGraph() {
// CallsExternalNode is not in the function map, delete it explicitly.
if (CallsExternalNode)
@@ -253,6 +262,12 @@ void CallGraphNode::replaceCallEdge(CallSite CS,
}
//===----------------------------------------------------------------------===//
+// Out-of-line definitions of CallGraphAnalysis class members.
+//
+
+char CallGraphAnalysis::PassID;
+
+//===----------------------------------------------------------------------===//
// Implementations of the CallGraphWrapperPass class methods.
//
OpenPOWER on IntegriCloud