The landingpad instruction can be removed only when its invokes are removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138930
91177308-0d34-0410-b5e6-
96231b3b80d8
while (Term != BB->begin()) { // Remove instrs bottom-up
BasicBlock::iterator I = Term; --I;
+ // Don't remove the landingpad instruction. This should be removed
+ // only if its invokes are also removed.
+ if (isa<LandingPadInst>(I))
+ continue;
+
DEBUG(errs() << "IC: DCE: " << *I << '\n');
// A debug intrinsic shouldn't force another iteration if we weren't
// going to do one without it.