summaryrefslogtreecommitdiff
path: root/compiler/optimizing/ssa_builder.cc
diff options
context:
space:
mode:
author David Brazdil <dbrazdil@google.com> 2015-08-19 17:12:48 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2015-08-19 17:12:48 +0000
commita35d4c9d66b372e7ae1014357c48ddfa6104085b (patch)
tree8f3c9cefb4c9ed12749713ef1f52708ef6d5d455 /compiler/optimizing/ssa_builder.cc
parentf25f4f95863946053cae46e34fd175cc7a6c3ea5 (diff)
parentec16f79a4d0aeff319bf52139a0c82de3080d73c (diff)
Merge "ART: Refactor try/catch block info, store exception type"
Diffstat (limited to 'compiler/optimizing/ssa_builder.cc')
-rw-r--r--compiler/optimizing/ssa_builder.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/compiler/optimizing/ssa_builder.cc b/compiler/optimizing/ssa_builder.cc
index ff2e6ad821..561c3b4964 100644
--- a/compiler/optimizing/ssa_builder.cc
+++ b/compiler/optimizing/ssa_builder.cc
@@ -567,9 +567,10 @@ void SsaBuilder::VisitInstruction(HInstruction* instruction) {
}
// If in a try block, propagate values of locals into catch blocks.
- if (instruction->GetBlock()->IsInTry() && instruction->CanThrow()) {
- HTryBoundary* try_block = instruction->GetBlock()->GetTryEntry();
- for (HExceptionHandlerIterator it(*try_block); !it.Done(); it.Advance()) {
+ if (instruction->CanThrowIntoCatchBlock()) {
+ const HTryBoundary& try_entry =
+ instruction->GetBlock()->GetTryCatchInformation()->GetTryEntry();
+ for (HExceptionHandlerIterator it(try_entry); !it.Done(); it.Advance()) {
GrowableArray<HInstruction*>* handler_locals = GetLocalsFor(it.Current());
for (size_t i = 0, e = current_locals_->Size(); i < e; ++i) {
HInstruction* local_value = current_locals_->Get(i);