summaryrefslogtreecommitdiff
path: root/compiler/optimizing
diff options
context:
space:
mode:
author android-build-team Robot <android-build-team-robot@google.com> 2018-03-25 07:21:38 +0000
committer android-build-team Robot <android-build-team-robot@google.com> 2018-03-25 07:21:38 +0000
commitf747a5e47e52b1b8b2ae50a329c31a8c9a2cdec8 (patch)
treeac394a05bd788935e49c637ec9e3d2496c9c1047 /compiler/optimizing
parent7fbb197f6a7ef3029652eed14d34ad8ff10f40df (diff)
parent743aac3fbad3bbafeb5ad98e157726f740feb725 (diff)
Snap for 4677756 from 743aac3fbad3bbafeb5ad98e157726f740feb725 to pi-release
Change-Id: I65bd6b16df1431b3e141aefe6cb62cc9895ad5fc
Diffstat (limited to 'compiler/optimizing')
-rw-r--r--compiler/optimizing/code_sinking.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/code_sinking.cc b/compiler/optimizing/code_sinking.cc
index f4760d661f..2e31d35584 100644
--- a/compiler/optimizing/code_sinking.cc
+++ b/compiler/optimizing/code_sinking.cc
@@ -214,6 +214,11 @@ static HInstruction* FindIdealPosition(HInstruction* instruction,
DCHECK(target_block != nullptr);
}
+ // Bail if the instruction can throw and we are about to move into a catch block.
+ if (instruction->CanThrow() && target_block->GetTryCatchInformation() != nullptr) {
+ return nullptr;
+ }
+
// Find insertion position. No need to filter anymore, as we have found a
// target block.
HInstruction* insert_pos = nullptr;