summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-02-28 12:51:24 +0000
committerVladimir Marko <vmarko@google.com>2014-02-28 12:56:42 +0000
commit39d95e695e2ef1fbd420eba6ceaa40c688099c30 (patch)
tree6d35bc135e6f324d16bd4443c74b930f4133f607
parent1b22ddf2efe48ae1cbcdc34468037eca6072fe5c (diff)
downloadart-39d95e695e2ef1fbd420eba6ceaa40c688099c30.zip
art-39d95e695e2ef1fbd420eba6ceaa40c688099c30.tar.gz
art-39d95e695e2ef1fbd420eba6ceaa40c688099c30.tar.bz2
Remove unreachable catch entries in GenSpecialCase().
Fix debug build CHECK failure when we generate special method implementation and drop unreachable catch handlers. Bug: 13164331 Change-Id: I00e9841a2db8acaf1e81e1d9702e155c5b7e72e2
-rw-r--r--compiler/dex/quick/mir_to_lir.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/dex/quick/mir_to_lir.cc b/compiler/dex/quick/mir_to_lir.cc
index 8c2ed36..28d53ad 100644
--- a/compiler/dex/quick/mir_to_lir.cc
+++ b/compiler/dex/quick/mir_to_lir.cc
@@ -231,6 +231,11 @@ bool Mir2Lir::GenSpecialCase(BasicBlock* bb, MIR* mir, const InlineMethod& speci
}
if (successful) {
+ if (kIsDebugBuild) {
+ // Clear unreachable catch entries.
+ mir_graph_->catches_.clear();
+ }
+
// Handle verbosity for return MIR.
if (return_mir != nullptr) {
current_dalvik_offset_ = return_mir->offset;