diff options
Diffstat (limited to 'test/passes/post-emscripten.wast')
-rw-r--r-- | test/passes/post-emscripten.wast | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/test/passes/post-emscripten.wast b/test/passes/post-emscripten.wast index fe60858f7..e5a4637cc 100644 --- a/test/passes/post-emscripten.wast +++ b/test/passes/post-emscripten.wast @@ -109,7 +109,7 @@ (call $call) ) ) -(module +(module ;; non-constant base for elem (type $0 (func (param i32))) (import "global.Math" "pow" (func $Math_pow (param f64 f64) (result f64))) (import "env" "invoke_vif" (func $invoke_vif (param i32 i32 f32))) @@ -127,3 +127,24 @@ (func $other_safe (param i32) (param f32) ) ) +(module ;; indirect call in the invoke target, which we assume might throw + (type $none_=>_none (func)) + (import "global.Math" "pow" (func $Math_pow (param f64 f64) (result f64))) + (import "env" "invoke_vif" (func $invoke_vif (param i32 i32 f32))) + (import "env" "glob" (global $glob i32)) ;; non-constant table offset + (memory 256 256) + (table 7 7 funcref) + (elem (i32.const 0) $other_safe) + (func $exc + (call $invoke_vif + (i32.const 0) ;; other_safe() + (i32.const 42) + (f32.const 3.14159) + ) + ) + (func $other_safe (param i32) (param f32) + (call_indirect (type $none_=>_none) + (i32.const 0) + ) + ) +) |