summaryrefslogtreecommitdiff
path: root/test/passes/remove-unused-names_code-folding_all-features.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/remove-unused-names_code-folding_all-features.txt')
-rw-r--r--test/passes/remove-unused-names_code-folding_all-features.txt1786
1 files changed, 1786 insertions, 0 deletions
diff --git a/test/passes/remove-unused-names_code-folding_all-features.txt b/test/passes/remove-unused-names_code-folding_all-features.txt
new file mode 100644
index 000000000..2aa40da24
--- /dev/null
+++ b/test/passes/remove-unused-names_code-folding_all-features.txt
@@ -0,0 +1,1786 @@
+(module
+ (type $none_=>_none (func))
+ (type $none_=>_i32 (func (result i32)))
+ (type $i32_=>_i32 (func (param i32) (result i32)))
+ (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
+ (event $e (attr 0) (param))
+ (func $ifs (; 0 ;)
+ (if
+ (i32.const 0)
+ (nop)
+ )
+ (block
+ (drop
+ (i32.const 0)
+ )
+ (nop)
+ )
+ (if
+ (i32.const 0)
+ (nop)
+ (unreachable)
+ )
+ (drop
+ (block (result i32)
+ (drop
+ (i32.const 0)
+ )
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (if (result i32)
+ (i32.const 0)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ (i32.add
+ (i32.const 1)
+ (i32.const 333333333)
+ )
+ )
+ )
+ )
+ (func $ifs-blocks (; 1 ;)
+ (block
+ (drop
+ (i32.const 0)
+ )
+ (block
+ (nop)
+ )
+ )
+ (block
+ (if
+ (i32.const 0)
+ (unreachable)
+ (block
+ )
+ )
+ (nop)
+ )
+ (block
+ (if
+ (i32.const 0)
+ (block
+ )
+ (unreachable)
+ )
+ (nop)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (nop)
+ (unreachable)
+ )
+ (nop)
+ )
+ (if
+ (i32.const 0)
+ (nop)
+ (block
+ (nop)
+ (unreachable)
+ )
+ )
+ )
+ (func $ifs-blocks-big (; 2 ;)
+ (block
+ (drop
+ (i32.const 0)
+ )
+ (block
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (block
+ (if
+ (i32.const 0)
+ (unreachable)
+ (block
+ )
+ )
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (block
+ (if
+ (i32.const 0)
+ (block
+ )
+ (unreachable)
+ )
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (unreachable)
+ )
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (if
+ (i32.const 0)
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (block
+ (drop
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (unreachable)
+ )
+ )
+ )
+ (func $ifs-blocks-long (; 3 ;)
+ (block
+ (if
+ (i32.const 1)
+ (block
+ (drop
+ (i32.const -1234)
+ )
+ (drop
+ (i32.const -1000)
+ )
+ )
+ (drop
+ (i32.const 999)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (nop)
+ (unreachable)
+ )
+ (drop
+ (block (result i32)
+ (if
+ (i32.const 2)
+ (block
+ (drop
+ (i32.const -1234)
+ )
+ (drop
+ (i32.const -1000)
+ )
+ )
+ (drop
+ (i32.const 999)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (nop)
+ (unreachable)
+ (i32.const 2)
+ )
+ )
+ (drop
+ (block (result i32)
+ (if
+ (i32.const 3)
+ (block
+ (drop
+ (i32.const -1234)
+ )
+ (drop
+ (i32.const -1000)
+ )
+ )
+ (drop
+ (i32.const 999)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (nop)
+ (i32.const 2)
+ )
+ )
+ )
+ (func $if-worth-it-i-dunno (; 4 ;)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 0)
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const -1234)
+ )
+ (drop
+ (i32.const -1000)
+ )
+ (br $folding-inner0)
+ )
+ (block
+ (drop
+ (i32.const 999)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (br $folding-inner0)
+ )
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const -1234)
+ )
+ (drop
+ (i32.const -1000)
+ )
+ )
+ (block
+ (drop
+ (i32.const 999)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ )
+ (unreachable)
+ (br $folding-inner0)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.const 0)
+ (block
+ )
+ (block
+ (drop
+ (i32.const 999)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ )
+ (br $folding-inner0)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const -1234)
+ )
+ (drop
+ (i32.const -1000)
+ )
+ )
+ (block
+ )
+ )
+ (br $folding-inner0)
+ )
+ )
+ (block
+ (block
+ (if
+ (i32.const 9999)
+ (block
+ (drop
+ (i32.const -51234)
+ )
+ (drop
+ (i32.const -51000)
+ )
+ )
+ (block
+ (drop
+ (i32.const 5999)
+ )
+ (drop
+ (i32.const 51)
+ )
+ )
+ )
+ (br $folding-inner0)
+ )
+ )
+ (drop
+ (block (result i32)
+ (block (result i32)
+ (if
+ (i32.const 9999)
+ (block
+ (drop
+ (i32.const -51234)
+ )
+ (drop
+ (i32.const -51000)
+ )
+ )
+ (block
+ (drop
+ (i32.const 5999)
+ )
+ (drop
+ (i32.const 51)
+ )
+ )
+ )
+ (unreachable)
+ (i32.const 10)
+ )
+ )
+ )
+ (block
+ (drop
+ (if (result i32)
+ (i32.const 9999)
+ (block (result i32)
+ (drop
+ (i32.const -51234)
+ )
+ (drop
+ (i32.const -51000)
+ )
+ (unreachable)
+ (i32.const 10)
+ )
+ (block (result i32)
+ (drop
+ (i32.const 5999)
+ )
+ (drop
+ (i32.const 51)
+ )
+ (unreachable)
+ (i32.const 10)
+ )
+ )
+ )
+ )
+ )
+ )
+ (unreachable)
+ (unreachable)
+ )
+ (func $no-grandparent (; 5 ;)
+ (if
+ (i32.const 9999)
+ (block
+ (drop
+ (i32.const -51234)
+ )
+ (drop
+ (i32.const -51000)
+ )
+ (unreachable)
+ (unreachable)
+ )
+ (block
+ (drop
+ (i32.const 5999)
+ )
+ (drop
+ (i32.const 51)
+ )
+ (unreachable)
+ (unreachable)
+ )
+ )
+ )
+ (func $yes-grandparent (; 6 ;)
+ (block
+ (if
+ (i32.const 9999)
+ (block
+ (drop
+ (i32.const -51234)
+ )
+ (drop
+ (i32.const -51000)
+ )
+ )
+ (block
+ (drop
+ (i32.const 5999)
+ )
+ (drop
+ (i32.const 51)
+ )
+ )
+ )
+ (unreachable)
+ (unreachable)
+ )
+ )
+ (func $ifs-named-block (; 7 ;) (param $x i32) (param $y i32) (result i32)
+ (block $out
+ (block $out2
+ (block
+ (drop
+ (local.get $x)
+ )
+ (block
+ (br_if $out
+ (local.get $y)
+ )
+ (nop)
+ )
+ )
+ (block
+ (if
+ (local.get $x)
+ (br_if $out
+ (local.get $y)
+ )
+ (br_if $out2
+ (local.get $y)
+ )
+ )
+ (nop)
+ )
+ (if
+ (i32.const 1234)
+ (if
+ (local.get $x)
+ (block
+ (nop)
+ (br_if $out
+ (local.get $y)
+ )
+ (nop)
+ )
+ (block
+ (nop)
+ (br_if $out2
+ (local.get $y)
+ )
+ (nop)
+ )
+ )
+ )
+ (if
+ (local.get $x)
+ (block $left
+ (br_if $left
+ (local.get $y)
+ )
+ (nop)
+ )
+ (block
+ (br_if $out
+ (local.get $y)
+ )
+ (nop)
+ )
+ )
+ (if
+ (local.get $x)
+ (block
+ (br_if $out
+ (local.get $y)
+ )
+ (nop)
+ )
+ (block $right
+ (br_if $right
+ (local.get $y)
+ )
+ (nop)
+ )
+ )
+ )
+ (return
+ (i32.const 10)
+ )
+ )
+ (return
+ (i32.const 20)
+ )
+ )
+ (func $block (; 8 ;)
+ (block $x
+ (if
+ (i32.const 0)
+ (br $x)
+ )
+ (if
+ (i32.const 0)
+ (br $x)
+ )
+ (br $x)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (func $block2 (; 9 ;)
+ (block $x
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 333333)
+ )
+ (br $x)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x)
+ )
+ )
+ (func $block3 (; 10 ;)
+ (block $x
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1000)
+ )
+ (br $x)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 2000)
+ )
+ (drop
+ (i32.const 3000)
+ )
+ (br $x)
+ )
+ )
+ (drop
+ (i32.const 4000)
+ )
+ (drop
+ (i32.const 5000)
+ )
+ (drop
+ (i32.const 6000)
+ )
+ (br $x)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (func $mixture (; 11 ;)
+ (block $out
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (block
+ (drop
+ (i32.const 2)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (br $out)
+ )
+ )
+ )
+ (block $out2
+ (block
+ (if
+ (i32.const 1)
+ (drop
+ (i32.const 3)
+ )
+ (block
+ (drop
+ (i32.const 4)
+ )
+ (drop
+ (i32.const 5)
+ )
+ )
+ )
+ (drop
+ (i32.const 2)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (br $out2)
+ )
+ )
+ (block
+ (block $out3
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (block
+ (br $out3)
+ )
+ )
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (block
+ (br $out3)
+ )
+ )
+ (br $out3)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ )
+ )
+ (func $block-corners (; 12 ;)
+ (block
+ (block $x
+ (if
+ (i32.const 0)
+ (br $x)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (drop
+ (block $y (result i32)
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $y
+ (i32.const 3)
+ )
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $y
+ (i32.const 3)
+ )
+ )
+ )
+ (drop
+ (block $z (result i32)
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $z
+ (i32.const 2)
+ )
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (i32.const 3)
+ )
+ )
+ (block $w
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br_if $w
+ (i32.const 3)
+ )
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (block $x1
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x1)
+ (nop)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (block $side
+ (block $x2
+ (br_table $x2 $side
+ (i32.const 0)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x2)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (block $x3
+ (br_table $side $x3
+ (i32.const 0)
+ )
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x3)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (func $terminating (; 13 ;)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ )
+ (return)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ (func $terminating-unreachable (; 14 ;)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ (unreachable)
+ )
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ (func $terminating-value (; 15 ;) (result i32)
+ (block $folding-inner0
+ (return
+ (block (result i32)
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ (i32.const 4)
+ )
+ )
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ (func $terminating-just-2 (; 16 ;)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (block
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (drop
+ (i32.const 10)
+ )
+ (unreachable)
+ )
+ )
+ )
+ (return)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ (func $terminating-shortness (; 17 ;)
+ (block $folding-inner1
+ (block
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner1)
+ )
+ (if
+ (i32.const 3)
+ (block
+ (drop
+ (i32.const 10)
+ )
+ (br $folding-inner0)
+ )
+ )
+ )
+ (return)
+ )
+ (nop)
+ (br $folding-inner1)
+ )
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ (func $terminating-multiple-separate (; 18 ;)
+ (block $folding-inner1
+ (block
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 1)
+ (br $folding-inner1)
+ )
+ (if
+ (i32.const 1)
+ (br $folding-inner1)
+ )
+ )
+ (return)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (drop
+ (i32.const 1)
+ )
+ (unreachable)
+ )
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (drop
+ (i32.const 2)
+ )
+ (unreachable)
+ )
+ (func $terminating-just-worth-it (; 19 ;)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ )
+ (return)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ (func $terminating-not-worth-it (; 20 ;)
+ (if
+ (i32.const 1)
+ (block
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 2)
+ (block
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ )
+ (if
+ (i32.const 3)
+ (block
+ (nop)
+ (nop)
+ (unreachable)
+ )
+ )
+ )
+ (func $terminating-return (; 21 ;)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ )
+ (return)
+ )
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (nop)
+ (return)
+ )
+ (func $terminating-return-value (; 22 ;) (result i32)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (block
+ (nop)
+ (return
+ (i32.add
+ (i32.const 111111111)
+ (i32.const 2222222)
+ )
+ )
+ )
+ )
+ (return
+ (i32.const 1234)
+ )
+ )
+ )
+ (nop)
+ (return
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (func $terminating-fallthrough-value (; 23 ;) (result i32)
+ (block $folding-inner0
+ (return
+ (block (result i32)
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (block
+ (nop)
+ (return
+ (i32.add
+ (i32.const 111111111)
+ (i32.const 2222222)
+ )
+ )
+ )
+ )
+ (i32.const 1234)
+ )
+ )
+ )
+ (nop)
+ (return
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (func $big-return (; 24 ;) (result i32)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 4)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 5)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 6)
+ (br $folding-inner0)
+ )
+ (unreachable)
+ )
+ )
+ (return
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (func $return-mix (; 25 ;) (result i32)
+ (block $folding-inner0
+ (block
+ (if
+ (i32.const 1)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 2)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 4)
+ (br $folding-inner0)
+ )
+ (if
+ (i32.const 3)
+ (return
+ (i32.add
+ (i32.const 1)
+ (i32.const 234567)
+ )
+ )
+ )
+ (br $folding-inner0)
+ )
+ )
+ (return
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (func $just-unreachable (; 26 ;)
+ (unreachable)
+ )
+ (func $just-return (; 27 ;) (result i32)
+ (return
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ (func $drop-if-with-value-but-unreachable (; 28 ;)
+ (if
+ (i32.const 0)
+ (nop)
+ )
+ (block
+ (drop
+ (i32.const 0)
+ )
+ (block
+ (nop)
+ )
+ )
+ (if
+ (i32.const 0)
+ (nop)
+ (unreachable)
+ )
+ (nop)
+ (drop
+ (block (result i32)
+ (drop
+ (unreachable)
+ )
+ (block (result i32)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ )
+ )
+ (drop
+ (if (result i32)
+ (i32.const 0)
+ (i32.add
+ (i32.const 1)
+ (i32.const 2)
+ )
+ (i32.add
+ (i32.const 1)
+ (i32.const 333333333)
+ )
+ )
+ )
+ )
+ (func $nested-control-flow (; 29 ;)
+ (block $out
+ (block
+ (block $x
+ (if
+ (i32.const 0)
+ (br $x)
+ )
+ (if
+ (i32.const 0)
+ (br $x)
+ )
+ (br $x)
+ )
+ (if
+ (i32.const 1)
+ (br $out)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (drop
+ (i32.const 3)
+ )
+ )
+ )
+ (func $nested-control-flow-dangerous (; 30 ;)
+ (block $folding-inner0
+ (block $out
+ (block
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.const 1)
+ (br $out)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.const 1)
+ (br $out)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (if
+ (i32.const 1)
+ (br $out)
+ )
+ (br $folding-inner0)
+ )
+ (drop
+ (i32.const 3)
+ )
+ )
+ (return)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (return)
+ )
+ (func $nested-control-flow-dangerous-but-ok (; 31 ;)
+ (block $folding-inner0
+ (block
+ (block $middle
+ (block
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $middle)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $middle)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $middle)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (drop
+ (i32.const 3)
+ )
+ )
+ (return)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (return)
+ )
+ (func $nested-control-flow-dangerous-but-ok-b (; 32 ;)
+ (block $out
+ (block $middle
+ (block
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $middle)
+ )
+ (br $out)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $middle)
+ )
+ (br $out)
+ )
+ )
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $middle)
+ )
+ )
+ )
+ (unreachable)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 3)
+ )
+ (drop
+ (i32.const 4)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 3)
+ )
+ (drop
+ (i32.const 4)
+ )
+ )
+ (func $nested-control-flow-dangerous-but-ok-c (; 33 ;)
+ (block $x
+ (block
+ (block $out
+ (block
+ (if
+ (i32.const 0)
+ (br $out)
+ )
+ (if
+ (i32.const 0)
+ (br $out)
+ )
+ (br $out)
+ )
+ (unreachable)
+ )
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $x)
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (unreachable)
+ )
+ (drop
+ (i32.const 5)
+ )
+ )
+ (func $nested-control-flow-dangerous-but-ok-d (; 34 ;)
+ (block
+ (block $out
+ (block
+ (if
+ (i32.const 0)
+ (br $out)
+ )
+ (if
+ (i32.const 0)
+ (br $out)
+ )
+ (br $out)
+ )
+ )
+ (block $x
+ (if
+ (i32.add
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (br $x)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ )
+ (drop
+ (i32.const 3)
+ )
+ )
+ (func $if-suffix (; 35 ;) (param $x i32) (result i32)
+ (block
+ (if
+ (local.get $x)
+ (block
+ )
+ (drop
+ (call $if-suffix
+ (i32.const -1)
+ )
+ )
+ )
+ (local.set $x
+ (i32.const 1)
+ )
+ )
+ (block (result i32)
+ (if
+ (local.get $x)
+ (block
+ )
+ (drop
+ (call $if-suffix
+ (i32.const -2)
+ )
+ )
+ )
+ (i32.const 2)
+ )
+ )
+ (func $exnref_pop_test (; 36 ;)
+ (local $exn exnref)
+ (block $folding-inner0
+ (try
+ (try
+ (nop)
+ (catch
+ (local.set $exn
+ (exnref.pop)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (catch
+ (local.set $exn
+ (exnref.pop)
+ )
+ (br $folding-inner0)
+ )
+ )
+ (return)
+ )
+ (drop
+ (i32.const 111)
+ )
+ (drop
+ (i32.const 222)
+ )
+ (drop
+ (i32.const 333)
+ )
+ (unreachable)
+ )
+ (func $br_on_exn_target_block (; 37 ;)
+ (local $exn exnref)
+ (block $x
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x)
+ )
+ )
+ (if
+ (i32.const 0)
+ (block
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x)
+ )
+ )
+ (drop
+ (br_on_exn $x $e
+ (local.get $exn)
+ )
+ )
+ (drop
+ (i32.const 1)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (br $x)
+ )
+ )
+)