summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2014-04-18 20:44:16 +0000
committerChandler Carruth <chandlerc@gmail.com>2014-04-18 20:44:16 +0000
commit7dcb16865610436131df1247def9f573b3d44e1b (patch)
treef271dab6e274b046fff768a56d0270c9d7d1ff1f
parentabc5eea499e24317bfaaafa6e57b929a5cb1d2b8 (diff)
downloadllvm-7dcb16865610436131df1247def9f573b3d44e1b.tar.gz
llvm-7dcb16865610436131df1247def9f573b3d44e1b.tar.bz2
llvm-7dcb16865610436131df1247def9f573b3d44e1b.tar.xz
[LCG] Fix the bugs that Ben pointed out in code review (and the MSan bot
caught). Sad that we don't have warnings for these things, but bleh, no idea how to fix that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206646 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Analysis/LazyCallGraph.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Analysis/LazyCallGraph.cpp b/lib/Analysis/LazyCallGraph.cpp
index 229e2c93ad..a981dcceaa 100644
--- a/lib/Analysis/LazyCallGraph.cpp
+++ b/lib/Analysis/LazyCallGraph.cpp
@@ -65,7 +65,7 @@ LazyCallGraph::Node::Node(LazyCallGraph &G, Function &F)
findCallees(Worklist, Visited, Callees, CalleeSet);
}
-LazyCallGraph::LazyCallGraph(Module &M) {
+LazyCallGraph::LazyCallGraph(Module &M) : NextDFSNumber(0) {
for (Function &F : M)
if (!F.isDeclaration() && !F.hasLocalLinkage())
if (EntryNodeSet.insert(&F))
@@ -89,16 +89,19 @@ LazyCallGraph::LazyCallGraph(Module &M) {
}
LazyCallGraph::LazyCallGraph(LazyCallGraph &&G)
- : BPA(std::move(G.BPA)), EntryNodes(std::move(G.EntryNodes)),
+ : BPA(std::move(G.BPA)), NodeMap(std::move(G.NodeMap)),
+ EntryNodes(std::move(G.EntryNodes)),
EntryNodeSet(std::move(G.EntryNodeSet)), SCCBPA(std::move(G.SCCBPA)),
SCCMap(std::move(G.SCCMap)), LeafSCCs(std::move(G.LeafSCCs)),
DFSStack(std::move(G.DFSStack)),
- SCCEntryNodes(std::move(G.SCCEntryNodes)) {
+ SCCEntryNodes(std::move(G.SCCEntryNodes)),
+ NextDFSNumber(G.NextDFSNumber) {
updateGraphPtrs();
}
LazyCallGraph &LazyCallGraph::operator=(LazyCallGraph &&G) {
BPA = std::move(G.BPA);
+ NodeMap = std::move(G.NodeMap);
EntryNodes = std::move(G.EntryNodes);
EntryNodeSet = std::move(G.EntryNodeSet);
SCCBPA = std::move(G.SCCBPA);
@@ -106,6 +109,7 @@ LazyCallGraph &LazyCallGraph::operator=(LazyCallGraph &&G) {
LeafSCCs = std::move(G.LeafSCCs);
DFSStack = std::move(G.DFSStack);
SCCEntryNodes = std::move(G.SCCEntryNodes);
+ NextDFSNumber = G.NextDFSNumber;
updateGraphPtrs();
return *this;
}