Fix an iterator invalidation problem

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22575 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-08-02 00:41:11 +00:00
parent 8dcd5483bc
commit 1060e09fb2

View File

@ -622,7 +622,9 @@ void LoopStrengthReduce::runOnLoop(Loop *L) {
BasicBlock::iterator I = L->getHeader()->begin();
PHINode *PN;
for (; (PN = dyn_cast<PHINode>(I)); ++I) {
for (; (PN = dyn_cast<PHINode>(I)); ) {
++I; // Preincrement iterator to avoid invalidating it when deleting PN.
// At this point, we know that we have killed one or more GEP instructions.
// It is worth checking to see if the cann indvar is also dead, so that we
// can remove it as well. The requirements for the cann indvar to be