summaryrefslogtreecommitdiff
path: root/compiler/optimizing/ssa_builder.cc
diff options
context:
space:
mode:
author David Brazdil <dbrazdil@google.com> 2015-07-30 16:45:35 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-07-30 16:45:35 +0000
commita302e9133b659d9b96066aa53f9d22d35d2dba13 (patch)
tree02338a5656bb8a21b742f6506ce92a07d4a8162a /compiler/optimizing/ssa_builder.cc
parent7b926cdacc2b67241bc9cb5f2d4b04b13ca79d0e (diff)
parentb618adebbc19e50d7b1aa2f11b84341beb3c64dc (diff)
Merge "ART: Store and check exceptional predecessors"
Diffstat (limited to 'compiler/optimizing/ssa_builder.cc')
-rw-r--r--compiler/optimizing/ssa_builder.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/ssa_builder.cc b/compiler/optimizing/ssa_builder.cc
index ff2e6ad821..2c34e4dd03 100644
--- a/compiler/optimizing/ssa_builder.cc
+++ b/compiler/optimizing/ssa_builder.cc
@@ -570,7 +570,9 @@ void SsaBuilder::VisitInstruction(HInstruction* instruction) {
if (instruction->GetBlock()->IsInTry() && instruction->CanThrow()) {
HTryBoundary* try_block = instruction->GetBlock()->GetTryEntry();
for (HExceptionHandlerIterator it(*try_block); !it.Done(); it.Advance()) {
- GrowableArray<HInstruction*>* handler_locals = GetLocalsFor(it.Current());
+ HBasicBlock* handler = it.Current();
+ handler->AddExceptionalPredecessor(instruction);
+ GrowableArray<HInstruction*>* handler_locals = GetLocalsFor(handler);
for (size_t i = 0, e = current_locals_->Size(); i < e; ++i) {
HInstruction* local_value = current_locals_->Get(i);
if (local_value != nullptr) {