diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-05-03 11:29:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-03 11:29:04 -0700 |
commit | b6526bbfeb12a793654f918d142ba07852df69af (patch) | |
tree | eacd81525ba79dcce02fadf9d336f0aea23e9bb6 /test | |
parent | e10a6e22921889970ceb6e1fb76e786bc66d79d7 (diff) | |
parent | a8f493f24d41295b63c6834fe8efb4996370fee5 (diff) | |
download | binaryen-b6526bbfeb12a793654f918d142ba07852df69af.tar.gz binaryen-b6526bbfeb12a793654f918d142ba07852df69af.tar.bz2 binaryen-b6526bbfeb12a793654f918d142ba07852df69af.zip |
Merge pull request #993 from WebAssembly/dce-types
Make use of unreachable type consistent
Diffstat (limited to 'test')
-rw-r--r-- | test/passes/dce.txt | 34 | ||||
-rw-r--r-- | test/passes/dce.wast | 29 |
2 files changed, 63 insertions, 0 deletions
diff --git a/test/passes/dce.txt b/test/passes/dce.txt index 22189fb66..98f0ea177 100644 --- a/test/passes/dce.txt +++ b/test/passes/dce.txt @@ -3,6 +3,7 @@ (type $1 (func)) (type $2 (func (result i32))) (type $3 (func (param i32) (result i32))) + (type $4 (func (param i64 i64) (result i64))) (global $x (mut i32) (i32.const 0)) (table 1 1 anyfunc) (elem (i32.const 0) $call-me) @@ -379,4 +380,37 @@ ) ) ) + (func $call-unreach (type $4) (param $var$0 i64) (param $var$1 i64) (result i64) + (local $2 i64) + (if i64 + (i64.eqz + (get_local $var$0) + ) + (block $label$0 i64 + (get_local $var$1) + ) + (block $label$1 i64 + (block i64 + (drop + (i64.sub + (get_local $var$0) + (i64.const 1) + ) + ) + (block + (drop + (block $block i64 + (set_local $2 + (get_local $var$0) + ) + (nop) + (get_local $2) + ) + ) + (unreachable) + ) + ) + ) + ) + ) ) diff --git a/test/passes/dce.wast b/test/passes/dce.wast index 865f373cf..87a5757cd 100644 --- a/test/passes/dce.wast +++ b/test/passes/dce.wast @@ -509,4 +509,33 @@ ) ) ) + (func $call-unreach (param $var$0 i64) (param $var$1 i64) (result i64) + (local $2 i64) + (if i64 + (i64.eqz + (get_local $var$0) + ) + (block $label$0 i64 + (get_local $var$1) + ) + (block $label$1 i64 + (call $call-unreach + (i64.sub + (get_local $var$0) + (i64.const 1) + ) + (i64.mul + (block i64 + (set_local $2 + (get_local $var$0) + ) + (nop) + (get_local $2) + ) + (unreachable) + ) + ) + ) + ) + ) ) |