[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.

llvm-svn: 206646
This commit is contained in:
Chandler Carruth 2014-04-18 20:44:16 +00:00
parent 4aaea17dc9
commit 2174f44f61
1 changed files with 7 additions and 3 deletions

View File

@ -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;
}