diff options
Diffstat (limited to 'compiler/optimizing/dead_code_elimination.cc')
| -rw-r--r-- | compiler/optimizing/dead_code_elimination.cc | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/optimizing/dead_code_elimination.cc b/compiler/optimizing/dead_code_elimination.cc index fe2adc77d0..5655544427 100644 --- a/compiler/optimizing/dead_code_elimination.cc +++ b/compiler/optimizing/dead_code_elimination.cc @@ -35,7 +35,10 @@ void DeadCodeElimination::Run() {      for (i.Advance(); !i.Done(); i.Advance()) {        HInstruction* inst = i.Current();        DCHECK(!inst->IsControlFlow()); -      if (!inst->HasSideEffects() && !inst->HasUses() && !inst->IsSuspendCheck()) { +      if (!inst->HasSideEffects() +          && !inst->CanThrow() +          && !inst->IsSuspendCheck() +          && !inst->HasUses()) {          block->RemoveInstruction(inst);        }      }  |