Fix an iterator invalidation problem

llvm-svn: 22575
This commit is contained in:
Chris Lattner 2005-08-02 00:41:11 +00:00
parent fca31aee4f
commit 564900e5e5
1 changed files with 3 additions and 1 deletions

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