summaryrefslogtreecommitdiff
path: root/runtime/interpreter/interpreter_switch_impl-inl.h
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2020-05-19 19:30:35 +0100
committer David Srbecky <dsrbecky@google.com> 2020-05-20 19:21:31 +0100
commitd1a421ff5cf2ffae07cd6b892dd31d51b09d3e71 (patch)
treeffe0d5d36c44de34ae1648b8af15d99d1622dcc9 /runtime/interpreter/interpreter_switch_impl-inl.h
parent2acd1ec12ab6b81a7e870ab11085c24ae51faf6d (diff)
Re-enable asan tests which we disabled due to huge stack frames.
The interpreter refactoring reduced the stack frames from massive to just slightly bigger (mostly thanks to NO_INLINE). Bug: 117341496 Test: art/test.py -r -t 059 -t 074 -t 911 -t 913 -t 980 Change-Id: Ic116019944c99eba81843936a5126b9a61f4b423
Diffstat (limited to 'runtime/interpreter/interpreter_switch_impl-inl.h')
-rw-r--r--runtime/interpreter/interpreter_switch_impl-inl.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/runtime/interpreter/interpreter_switch_impl-inl.h b/runtime/interpreter/interpreter_switch_impl-inl.h
index 0f15adffb8..8a83ede875 100644
--- a/runtime/interpreter/interpreter_switch_impl-inl.h
+++ b/runtime/interpreter/interpreter_switch_impl-inl.h
@@ -1957,18 +1957,18 @@ void ExecuteSwitchImplCpp(SwitchImplContext* ctx) {
TraceExecution(shadow_frame, inst, dex_pc);
uint16_t inst_data = inst->Fetch16(0);
bool exit = false;
+ bool success; // Moved outside to keep frames small under asan.
if (InstructionHandler<do_access_check, transaction_active, Instruction::kInvalidFormat>(
ctx, instrumentation, self, shadow_frame, dex_pc, inst, inst_data, next, exit).
Preamble()) {
+ DCHECK_EQ(self->IsExceptionPending(), inst->Opcode(inst_data) == Instruction::MOVE_EXCEPTION);
switch (inst->Opcode(inst_data)) {
#define OPCODE_CASE(OPCODE, OPCODE_NAME, NAME, FORMAT, i, a, e, v) \
case OPCODE: { \
- DCHECK_EQ(self->IsExceptionPending(), (OPCODE == Instruction::MOVE_EXCEPTION)); \
next = inst->RelativeAt(Instruction::SizeInCodeUnits(Instruction::FORMAT)); \
- bool success = OP_##OPCODE_NAME<do_access_check, transaction_active>( \
+ success = OP_##OPCODE_NAME<do_access_check, transaction_active>( \
ctx, instrumentation, self, shadow_frame, dex_pc, inst, inst_data, next, exit); \
if (success && LIKELY(!interpret_one_instruction)) { \
- DCHECK(!exit) << NAME; \
continue; \
} \
if (exit) { \