When comparing DominanceFrontier's, advance iterators
[oota-llvm.git] / include / llvm / Analysis / Dominators.h
index 35cdb246518dd2dc67239d5d3a2913938e120bb4..0bb98ec6a887e7f80a743b00bdf016d011779b7e 100644 (file)
@@ -968,8 +968,8 @@ public:
       tmpSet.insert(*I);
 
     for (DomSetType::const_iterator I = DS1.begin(),
-           E = DS1.end(); I != E; ++I) {
-      BasicBlock *Node = *I;
+           E = DS1.end(); I != E; ) {
+      BasicBlock *Node = *I++;
 
       if (tmpSet.erase(Node) == 0)
         // Node is in DS1 but not in DS2.
@@ -993,7 +993,7 @@ public:
       tmpFrontiers.insert(std::make_pair(I->first, I->second));
 
     for (DomSetMapType::iterator I = tmpFrontiers.begin(),
-           E = tmpFrontiers.end(); I != E; ++I) {
+           E = tmpFrontiers.end(); I != E; ) {
       BasicBlock *Node = I->first;
       const_iterator DFI = find(Node);
       if (DFI == end()) 
@@ -1002,6 +1002,7 @@ public:
       if (compareDomSet(I->second, DFI->second))
         return true;
 
+      ++I;
       tmpFrontiers.erase(Node);
     }