From 617d92c7d9ff41fc3588d710a8f7aae73f9bdb0f Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 6 Feb 2003 22:03:46 +0000 Subject: [PATCH] Fix a problem Sumant was running into git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5499 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/PoolAllocate.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Transforms/IPO/PoolAllocate.cpp b/lib/Transforms/IPO/PoolAllocate.cpp index 894dbf315c3..b2efc12de27 100644 --- a/lib/Transforms/IPO/PoolAllocate.cpp +++ b/lib/Transforms/IPO/PoolAllocate.cpp @@ -46,7 +46,7 @@ bool PoolAllocate::run(Module &M) { std::map FuncMap; // Loop over only the function initially in the program, don't traverse newly - // added ones. If the function uses memory, make it's clone. + // added ones. If the function uses memory, make its clone. Module::iterator LastOrigFunction = --M.end(); for (Module::iterator I = M.begin(); ; ++I) { if (!I->isExternal()) @@ -132,7 +132,9 @@ Function *PoolAllocate::MakeFunctionClone(Function &F) { Nodes[i]->markReachableNodes(MarkedNodes); // Marked the returned node as alive... - G.getRetNode().getNode()->markReachableNodes(MarkedNodes); + if (DSNode *RetNode = G.getRetNode().getNode()) + if (RetNode->NodeType & DSNode::HeapNode) + RetNode->markReachableNodes(MarkedNodes); if (MarkedNodes.empty()) // We don't need to clone the function if there return 0; // are no incoming arguments to be added. -- 2.40.0