diff options
author | Chris Lattner <sabre@nondot.org> | 2003-11-22 02:13:08 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-11-22 02:13:08 +0000 |
commit | 4cc2cc5c5839171c7478d646069559d01806645d (patch) | |
tree | c96ef0ec977ac6dc0369929da08c9c6ee9fc4947 /llvm/lib/Transforms/Scalar/ADCE.cpp | |
parent | 7b233af2476eea3210f4a5736012b75a0b3cdbc4 (diff) | |
download | bcm5719-llvm-4cc2cc5c5839171c7478d646069559d01806645d.tar.gz bcm5719-llvm-4cc2cc5c5839171c7478d646069559d01806645d.zip |
Do not crash when deleing a region with a dead invoke instruction
llvm-svn: 10161
Diffstat (limited to 'llvm/lib/Transforms/Scalar/ADCE.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/ADCE.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/ADCE.cpp b/llvm/lib/Transforms/Scalar/ADCE.cpp index 4d7efd8ae4d..a06e746b0e0 100644 --- a/llvm/lib/Transforms/Scalar/ADCE.cpp +++ b/llvm/lib/Transforms/Scalar/ADCE.cpp @@ -430,6 +430,10 @@ bool ADCE::doADCE() { } // Delete the old terminator instruction... + const Type *TermTy = BB->getTerminator()->getType(); + if (TermTy != Type::VoidTy) + BB->getTerminator()->replaceAllUsesWith( + Constant::getNullValue(TermTy)); BB->getInstList().pop_back(); const Type *RetTy = Func->getReturnType(); new ReturnInst(RetTy != Type::VoidTy ? |