From: Chris Lattner Date: Sun, 29 Sep 2002 22:50:22 +0000 (+0000) Subject: Fix a problem that was caused by stale analyses being in CurrentAnalyses X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3f00ef9660e486f01e99d01961e64a50b38138ca;p=oota-llvm.git Fix a problem that was caused by stale analyses being in CurrentAnalyses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3981 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/VMCore/PassManagerT.h b/lib/VMCore/PassManagerT.h index 913a64f89ee..cf8624105da 100644 --- a/lib/VMCore/PassManagerT.h +++ b/lib/VMCore/PassManagerT.h @@ -292,6 +292,19 @@ public: (Annotable*)M); (*I)->releaseMemory(); } + + // Make sure to remove dead passes from the CurrentAnalyses list... + for (std::map::iterator I = CurrentAnalyses.begin(); + I != CurrentAnalyses.end(); ) { + std::vector::iterator DPI = std::find(DeadPass.begin(), + DeadPass.end(), I->second); + if (DPI != DeadPass.end()) { // This pass is dead now... remove it + std::map::iterator IDead = I++; + CurrentAnalyses.erase(IDead); + } else { + ++I; // Move on to the next element... + } + } } return MadeChanges; }