No need to use iterator to erase basic block.
authorDevang Patel <dpatel@apple.com>
Tue, 14 Aug 2007 16:53:24 +0000 (16:53 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 14 Aug 2007 16:53:24 +0000 (16:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41074 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/Dominators.h

index 410745837f1dcc1b362e0e8e06a57f82dd4dd666..41e6938459084289ced23f188dc724c0501e08b4 100644 (file)
@@ -253,7 +253,7 @@ public:
     changeImmediateDominator(getNode(BB), getNode(NewBB));
   }
 
-  /// eraseNode - Removes a node from  the domiantor tree. Block must not
+  /// eraseNode - Removes a node from  the dominator tree. Block must not
   /// domiante any other blocks. Removes node from its immediate dominator's
   /// children list. Deletes dominator node associated with basic block BB.
   void eraseNode(BasicBlock *BB);
@@ -378,8 +378,10 @@ public:
   /// removeBlock - Remove basic block BB's frontier.
   void removeBlock(BasicBlock *BB) {
     assert(find(BB) != end() && "Block is not in DominanceFrontier!");
-    iterator BBDF = Frontiers.find(BB);
-    Frontiers.erase(BBDF);
+    for (iterator I = begin(), E = end(); I != E; ++I)
+      if (I->second.count(BB))
+        I->second.erase(BB);
+    Frontiers.erase(BB);
   }
 
   void addToFrontier(iterator I, BasicBlock *Node) {