diff options
Diffstat (limited to 'test/passes/remove-unused-module-elements.wast')
-rw-r--r-- | test/passes/remove-unused-module-elements.wast | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/test/passes/remove-unused-module-elements.wast b/test/passes/remove-unused-module-elements.wast index eb071ee66..e0ae7b4ec 100644 --- a/test/passes/remove-unused-module-elements.wast +++ b/test/passes/remove-unused-module-elements.wast @@ -2,8 +2,16 @@ (memory 0) (start $start) (type $0 (func)) + (type $0-dupe (func)) + (type $1 (func (param i32))) + (type $1-dupe (func (param i32))) + (type $2 (func (param i32) (result i32))) + (type $2-dupe (func (param i32) (result i32))) + (type $2-thrupe (func (param i32) (result i32))) (export "memory" (memory $0)) (export "exported" $exported) + (export "other1" $other1) + (export "other2" $other2) (table 1 1 anyfunc) (elem (i32.const 0) $called_indirect) (func $start (type $0) @@ -18,26 +26,26 @@ (func $called_indirect (type $0) (nop) ) - (func $exported (type $0) + (func $exported (type $0-dupe) (call $called2) ) - (func $called2 (type $0) + (func $called2 (type $0-dupe) (call $called2) (call $called3) ) - (func $called3 (type $0) + (func $called3 (type $0-dupe) (call $called4) ) - (func $called4 (type $0) + (func $called4 (type $0-dupe) (call $called3) ) - (func $remove0 (type $0) + (func $remove0 (type $0-dupe) (call $remove1) ) - (func $remove1 (type $0) + (func $remove1 (type $0-dupe) (nop) ) - (func $remove2 (type $0) + (func $remove2 (type $0-dupe) (call $remove2) ) (func $remove3 (type $0) @@ -46,6 +54,20 @@ (func $remove4 (type $0) (call $remove3) ) + (func $other1 (param i32) (type $1) + (call_indirect $0 (i32.const 0)) + (call_indirect $0 (i32.const 0)) + (call_indirect $0-dupe (i32.const 0)) + (call_indirect $0-dupe (i32.const 0)) + (call_indirect $1 (i32.const 0) (i32.const 0)) + (call_indirect $1-dupe (i32.const 0) (i32.const 0)) + (drop (call_indirect $2 (i32.const 0) (i32.const 0))) + (drop (call_indirect $2-dupe (i32.const 0) (i32.const 0))) + (drop (call_indirect $2-thrupe (i32.const 0) (i32.const 0))) + ) + (func $other2 (param i32) (type $1-dupe) + (unreachable) + ) ) (module ;; leave the table and memory alone (import "env" "memory" (memory $0 256)) |