From ea1d05383125dbb2a2b5eeb866957a15ab966546 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Tue, 29 Aug 2017 03:36:38 -0700 Subject: [PATCH] Simplify the "am I in unreachable code" predicate. The phantom unreachable stack is only used when the real unreachable stack is active, so it's sufficient to check whether the real unreachable stack is empty. --- lib/wasm/src/code_translator.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/wasm/src/code_translator.rs b/lib/wasm/src/code_translator.rs index 748a151e45..696d91b304 100644 --- a/lib/wasm/src/code_translator.rs +++ b/lib/wasm/src/code_translator.rs @@ -236,8 +236,9 @@ pub fn translate_function_body(parser: &mut Parser, let parser_state = parser.read(); match *parser_state { ParserState::CodeOperator(ref op) => { - if state.phantom_unreachable_stack_depth + - state.real_unreachable_stack_depth > 0 { + debug_assert!(state.phantom_unreachable_stack_depth == 0 || + state.real_unreachable_stack_depth > 0); + if state.real_unreachable_stack_depth > 0 { translate_unreachable_operator(op, &mut builder, &mut stack,