mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Bug fix: X.mergeWith(Y) was not updating Y if Y was a null node handle!
llvm-svn: 10953
This commit is contained in:
parent
7348bd20b1
commit
da04e4d383
@ -679,13 +679,20 @@ void DSNode::MergeNodes(DSNodeHandle& CurNodeH, DSNodeHandle& NH) {
|
||||
// Offset indicates what offset the specified node is to be merged into the
|
||||
// current node.
|
||||
//
|
||||
// The specified node may be a null pointer (in which case, nothing happens).
|
||||
// The specified node may be a null pointer (in which case, we update it to
|
||||
// point to this node).
|
||||
//
|
||||
void DSNode::mergeWith(const DSNodeHandle &NH, unsigned Offset) {
|
||||
DSNode *N = NH.getNode();
|
||||
if (N == 0 || (N == this && NH.getOffset() == Offset))
|
||||
if (N == this && NH.getOffset() == Offset)
|
||||
return; // Noop
|
||||
|
||||
// If the RHS is a null node, make it point to this node!
|
||||
if (N == 0) {
|
||||
NH.mergeWith(DSNodeHandle(this, Offset));
|
||||
return;
|
||||
}
|
||||
|
||||
assert(!N->isDeadNode() && !isDeadNode());
|
||||
assert(!hasNoReferrers() && "Should not try to fold a useless node!");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user