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:
parent
72985c5a6d
commit
9a8238e477
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user