forked from OSchip/llvm-project
Fix an iterator invalidation problem in a "buggy" pass
llvm-svn: 12468
This commit is contained in:
parent
2820235689
commit
425726d9c2
|
@ -44,7 +44,7 @@ namespace {
|
|||
|
||||
namespace {
|
||||
/// 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 {
|
||||
bool runOnBasicBlock(BasicBlock &BB) {
|
||||
for (BasicBlock::iterator I = BB.begin(), E = BB.end(); I != E; ++I)
|
||||
|
@ -52,6 +52,7 @@ namespace {
|
|||
if (!CI->use_empty())
|
||||
CI->replaceAllUsesWith(Constant::getNullValue(CI->getType()));
|
||||
CI->getParent()->getInstList().erase(CI);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue