diff options
Diffstat (limited to 'lib/Analysis')
-rw-r--r-- | lib/Analysis/DataStructure/NodeImpl.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Analysis/DataStructure/NodeImpl.cpp b/lib/Analysis/DataStructure/NodeImpl.cpp index 796b569ce4..30bc9d21df 100644 --- a/lib/Analysis/DataStructure/NodeImpl.cpp +++ b/lib/Analysis/DataStructure/NodeImpl.cpp @@ -311,9 +311,11 @@ PointerValSet FunctionDSGraph::cloneFunctionIntoSelf(const FunctionDSGraph &DSG, Nodes.push_back(NodeMap[DSG.Nodes[i]] = DSG.Nodes[i]->clone()); // Clone all of the shadow nodes similarly... - for (unsigned i = 0, e = DSG.ShadowNodes.size(); i != e; ++i) - ShadowNodes.push_back(cast<ShadowDSNode>(NodeMap[DSG.ShadowNodes[i]] = DSG.ShadowNodes[i]->clone())); - + for (unsigned i = 0, e = DSG.ShadowNodes.size(); i != e; ++i) { + ShadowDSNode *New = cast<ShadowDSNode>(DSG.ShadowNodes[i]->clone()); + NodeMap[DSG.ShadowNodes[i]] = New; + ShadowNodes.push_back(New); + } // Convert all of the links over in the nodes now that the map has been filled // in all the way... |