From c3b0bd76a1edb1ab91b29ceab1eaa4797600d811 Mon Sep 17 00:00:00 2001 From: losfair Date: Tue, 12 Mar 2019 11:34:45 +0800 Subject: [PATCH] Validate return values in indirect call test. --- examples/single_pass_tests/call_indirect.wat | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/examples/single_pass_tests/call_indirect.wat b/examples/single_pass_tests/call_indirect.wat index 9b33407a9..019f045e8 100644 --- a/examples/single_pass_tests/call_indirect.wat +++ b/examples/single_pass_tests/call_indirect.wat @@ -1,12 +1,25 @@ (module (type $binop (func (param i32 i32) (result i32))) (table 1 100 anyfunc) + (elem (i32.const 5) $sub) (elem (i32.const 10) $add) - (func $main (export "main") (result i32) - (call_indirect (type $binop) (i32.const 42) (i32.const 1) (i32.const 10)) + (func $main (export "main") + (if (i32.eq (call_indirect (type $binop) (i32.const 42) (i32.const 1) (i32.const 10)) (i32.const 43)) + (then) + (else unreachable) + ) + (if (i32.eq (call_indirect (type $binop) (i32.const 42) (i32.const 1) (i32.const 5)) (i32.const 41)) + (then) + (else unreachable) + ) ) + (func $add (param i32) (param i32) (result i32) (i32.add (get_local 0) (get_local 1)) ) + + (func $sub (param i32) (param i32) (result i32) + (i32.sub (get_local 0) (get_local 1)) + ) )