Skip to content

Commit 4dc477d

Browse files
committed
[Dominators] Make eraseNode invalidate DFS numbers
This patch makes DT::eraseNode mark DFSInfo as invalid. Not marking it as invalid leads to DFS numbers getting corrupted and failing VerifyDFSNumbers check. This patch also makes children iterator const (NFC). llvm-svn: 314847
1 parent 0aa94d3 commit 4dc477d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

llvm/include/llvm/Support/GenericDomTree.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -637,11 +637,12 @@ class DominatorTreeBase {
637637
assert(Node && "Removing node that isn't in dominator tree.");
638638
assert(Node->getChildren().empty() && "Node is not a leaf node.");
639639

640+
DFSInfoValid = false;
641+
640642
// Remove node from immediate dominator's children list.
641643
DomTreeNodeBase<NodeT> *IDom = Node->getIDom();
642644
if (IDom) {
643-
typename std::vector<DomTreeNodeBase<NodeT> *>::iterator I =
644-
find(IDom->Children, Node);
645+
const auto I = find(IDom->Children, Node);
645646
assert(I != IDom->Children.end() &&
646647
"Not in immediate dominator children set!");
647648
// I am no longer your child...

0 commit comments

Comments
 (0)