diff --git a/core/iwasm/interpreter/wasm_loader.c b/core/iwasm/interpreter/wasm_loader.c index 1bc51d7b..aa92f96e 100644 --- a/core/iwasm/interpreter/wasm_loader.c +++ b/core/iwasm/interpreter/wasm_loader.c @@ -12041,6 +12041,7 @@ re_scan: switch (*(loader_ctx->frame_ref - 1)) { case VALUE_TYPE_I32: case VALUE_TYPE_F32: + case VALUE_TYPE_ANY: break; case VALUE_TYPE_I64: case VALUE_TYPE_F64: diff --git a/core/iwasm/interpreter/wasm_mini_loader.c b/core/iwasm/interpreter/wasm_mini_loader.c index 20084e14..fa4cd088 100644 --- a/core/iwasm/interpreter/wasm_mini_loader.c +++ b/core/iwasm/interpreter/wasm_mini_loader.c @@ -4240,7 +4240,7 @@ wasm_loader_pop_frame_ref(WASMLoaderContext *ctx, uint8 type, char *error_buf, ctx->frame_ref--; ctx->stack_cell_num--; - if (is_32bit_type(type)) + if (is_32bit_type(type) || *ctx->frame_ref == VALUE_TYPE_ANY) return true; ctx->frame_ref--; @@ -6696,6 +6696,7 @@ re_scan: switch (*(loader_ctx->frame_ref - 1)) { case REF_I32: case REF_F32: + case REF_ANY: break; case REF_I64_2: case REF_F64_2: