summaryrefslogtreecommitdiffstats
path: root/compiler/dex/mir_graph.h
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-07-08 18:06:45 +0100
committerVladimir Marko <vmarko@google.com>2014-07-08 18:10:53 +0100
commite8ae81453e1d6c19d7db2001a1e7b1849f74241c (patch)
tree099da65b5b05a99071e5442d69c06532dc16a8ce /compiler/dex/mir_graph.h
parent50dffeee9c8f7d3f396ffde30bd6b733e1af72d3 (diff)
downloadart-e8ae81453e1d6c19d7db2001a1e7b1849f74241c.tar.gz
art-e8ae81453e1d6c19d7db2001a1e7b1849f74241c.tar.bz2
art-e8ae81453e1d6c19d7db2001a1e7b1849f74241c.zip
Workaround for invalid monitor-exit catch ranges.
Avoid bogus exception edges from monitor-exit to a catch handler that does exactly the same monitor-exit. Bug: 15745363 Change-Id: I2b8b44b313c470557714744bdfb7beaef2cd2246
Diffstat (limited to 'compiler/dex/mir_graph.h')
-rw-r--r--compiler/dex/mir_graph.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h
index 398c7f641f..f812165e86 100644
--- a/compiler/dex/mir_graph.h
+++ b/compiler/dex/mir_graph.h
@@ -1063,6 +1063,7 @@ class MIRGraph {
BasicBlock* FindBlock(DexOffset code_offset, bool split, bool create,
BasicBlock** immed_pred_block_p);
void ProcessTryCatchBlocks();
+ bool IsBadMonitorExitCatch(NarrowDexOffset monitor_exit_offset, NarrowDexOffset catch_offset);
BasicBlock* ProcessCanBranch(BasicBlock* cur_block, MIR* insn, DexOffset cur_offset, int width,
int flags, const uint16_t* code_ptr, const uint16_t* code_end);
BasicBlock* ProcessCanSwitch(BasicBlock* cur_block, MIR* insn, DexOffset cur_offset, int width,