summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlon Zakai (kripken) <alonzakai@gmail.com>2017-07-28 16:26:46 -0700
committerAlon Zakai (kripken) <alonzakai@gmail.com>2017-07-29 19:18:54 -0700
commit7a06499ada2f5d0d349731595b3a09a46919c443 (patch)
treeaa4d98f6299d017dc5e0b0186d6d5b945baa5862 /test
parentdb51c2efa3a9c2da064db199792b3bf0de4e850f (diff)
downloadbinaryen-7a06499ada2f5d0d349731595b3a09a46919c443.tar.gz
binaryen-7a06499ada2f5d0d349731595b3a09a46919c443.tar.bz2
binaryen-7a06499ada2f5d0d349731595b3a09a46919c443.zip
fix binary emitting of untaken branches, and also handle reading of unreachable stacky code which may introduce concrete elements in non-final block positoins
Diffstat (limited to 'test')
-rw-r--r--test/untaken-br_if.wast14
-rw-r--r--test/untaken-br_if.wast.from-wast16
-rw-r--r--test/untaken-br_if.wast.fromBinary26
-rw-r--r--test/untaken-br_if.wast.fromBinary.noDebugInfo26
4 files changed, 82 insertions, 0 deletions
diff --git a/test/untaken-br_if.wast b/test/untaken-br_if.wast
new file mode 100644
index 000000000..a165cf67f
--- /dev/null
+++ b/test/untaken-br_if.wast
@@ -0,0 +1,14 @@
+(module
+ (func $binaryify-untaken-br_if (result f32)
+ (if
+ (i32.const 1)
+ (unreachable)
+ (block $label$1
+ (br_if $label$1
+ (i32.const 1)
+ (unreachable)
+ )
+ )
+ )
+ )
+)
diff --git a/test/untaken-br_if.wast.from-wast b/test/untaken-br_if.wast.from-wast
new file mode 100644
index 000000000..2d6d9dd2d
--- /dev/null
+++ b/test/untaken-br_if.wast.from-wast
@@ -0,0 +1,16 @@
+(module
+ (type $0 (func (result f32)))
+ (memory $0 0)
+ (func $binaryify-untaken-br_if (type $0) (result f32)
+ (if
+ (i32.const 1)
+ (unreachable)
+ (block $label$1
+ (br_if $label$1
+ (i32.const 1)
+ (unreachable)
+ )
+ )
+ )
+ )
+)
diff --git a/test/untaken-br_if.wast.fromBinary b/test/untaken-br_if.wast.fromBinary
new file mode 100644
index 000000000..14abdb5fb
--- /dev/null
+++ b/test/untaken-br_if.wast.fromBinary
@@ -0,0 +1,26 @@
+(module
+ (type $0 (func (result f32)))
+ (memory $0 0)
+ (func $binaryify-untaken-br_if (type $0) (result f32)
+ (if
+ (i32.const 1)
+ (block $label$0
+ (unreachable)
+ )
+ (block $label$1
+ (block $label$2
+ (drop
+ (i32.const 1)
+ )
+ (br_if $label$2
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (unreachable)
+ )
+)
+
diff --git a/test/untaken-br_if.wast.fromBinary.noDebugInfo b/test/untaken-br_if.wast.fromBinary.noDebugInfo
new file mode 100644
index 000000000..17f736ac3
--- /dev/null
+++ b/test/untaken-br_if.wast.fromBinary.noDebugInfo
@@ -0,0 +1,26 @@
+(module
+ (type $0 (func (result f32)))
+ (memory $0 0)
+ (func $0 (type $0) (result f32)
+ (if
+ (i32.const 1)
+ (block $label$0
+ (unreachable)
+ )
+ (block $label$1
+ (block $label$2
+ (drop
+ (i32.const 1)
+ )
+ (br_if $label$2
+ (unreachable)
+ )
+ (unreachable)
+ )
+ (unreachable)
+ )
+ )
+ (unreachable)
+ )
+)
+