1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

Fix an iterator invalidation problem in a "buggy" pass

llvm-svn: 12468
This commit is contained in:
Chris Lattner 2004-03-17 17:29:08 +00:00
parent 72985c5a6d
commit 9a8238e477

View File

@ -44,7 +44,7 @@ namespace {
namespace { namespace {
/// DeleteCalls - This pass is used to test bugpoint. It intentionally /// DeleteCalls - This pass is used to test bugpoint. It intentionally
/// deletes all call instructions, "misoptimizing" the program. /// deletes some call instructions, "misoptimizing" the program.
class DeleteCalls : public BasicBlockPass { class DeleteCalls : public BasicBlockPass {
bool runOnBasicBlock(BasicBlock &BB) { bool runOnBasicBlock(BasicBlock &BB) {
for (BasicBlock::iterator I = BB.begin(), E = BB.end(); I != E; ++I) for (BasicBlock::iterator I = BB.begin(), E = BB.end(); I != E; ++I)
@ -52,6 +52,7 @@ namespace {
if (!CI->use_empty()) if (!CI->use_empty())
CI->replaceAllUsesWith(Constant::getNullValue(CI->getType())); CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
CI->getParent()->getInstList().erase(CI); CI->getParent()->getInstList().erase(CI);
break;
} }
return false; return false;
} }