diff options
| author | 2020-05-19 19:30:35 +0100 | |
|---|---|---|
| committer | 2020-05-20 19:21:31 +0100 | |
| commit | d1a421ff5cf2ffae07cd6b892dd31d51b09d3e71 (patch) | |
| tree | ffe0d5d36c44de34ae1648b8af15d99d1622dcc9 /runtime/interpreter/interpreter_switch_impl-inl.h | |
| parent | 2acd1ec12ab6b81a7e870ab11085c24ae51faf6d (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.h | 6 |
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) { \ |