| (module |
| (type $ii (func (param i32 i32))) |
| (type $1 (func)) |
| (type $FUNCSIG$i (func (result i32))) |
| (type $FUNCSIG$ii (func (param i32) (result i32))) |
| (type $FUNCSIG$jjj (func (param i64 i64) (result i64))) |
| (type $FUNCSIG$vfj (func (param f32 i64))) |
| (type $FUNCSIG$ifj (func (param f32 i64) (result i32))) |
| (memory $0 10) |
| (table $0 1 1 funcref) |
| (elem (i32.const 0) $call-me) |
| (global $x (mut i32) (i32.const 0)) |
| (func $call-me (; 0 ;) (type $ii) (param $0 i32) (param $1 i32) |
| (nop) |
| ) |
| (func $code-to-kill (; 1 ;) (type $1) |
| (local $x i32) |
| (block $out |
| (br $out) |
| ) |
| (if |
| (i32.const 0) |
| (unreachable) |
| ) |
| (if |
| (i32.const 0) |
| (return) |
| ) |
| (block $out4 |
| (br_table $out4 $out4 $out4 $out4 |
| (i32.const 4) |
| ) |
| ) |
| (block $out5 |
| (br_if $out5 |
| (i32.const 3) |
| ) |
| (drop |
| (i32.const 0) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (if |
| (i32.const 0) |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (unreachable) |
| ) |
| (if |
| (i32.const 0) |
| (unreachable) |
| ) |
| (if |
| (i32.const 0) |
| (unreachable) |
| ) |
| (block $out16 |
| (block $in |
| (br_if $out16 |
| (i32.const 1) |
| ) |
| ) |
| (unreachable) |
| ) |
| (if |
| (i32.const 0) |
| (block $out18 |
| (block $in19 |
| (br_if $in19 |
| (i32.const 1) |
| ) |
| ) |
| (unreachable) |
| ) |
| ) |
| (block $out20 |
| (block $in21 |
| (br_table $out20 $in21 |
| (i32.const 1) |
| ) |
| ) |
| (unreachable) |
| ) |
| (block $out22 |
| (block $in23 |
| (br_table $in23 $out22 |
| (i32.const 1) |
| ) |
| ) |
| (unreachable) |
| ) |
| (if |
| (i32.const 0) |
| (block $out25 |
| (block $in26 |
| (br_table $in26 $in26 |
| (i32.const 1) |
| ) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (block $block15 |
| (drop |
| (i32.const 10) |
| ) |
| (drop |
| (i32.const 42) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (unreachable) |
| ) |
| (block $out29 |
| (block |
| (br_if $out29 |
| (i32.const 1) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 0) |
| (loop $in32 |
| (br_if $in32 |
| (i32.const 1) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 1) |
| (block |
| (drop |
| (i32.const 123) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 2) |
| (unreachable) |
| ) |
| (if |
| (i32.const 3) |
| (unreachable) |
| ) |
| (if |
| (i32.const -1) |
| (block |
| (drop |
| (i32.const 123) |
| ) |
| (drop |
| (i32.const 456) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const -2) |
| (block |
| (drop |
| (i32.const 139) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const -3) |
| (block |
| (drop |
| (i32.const 246) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const -4) |
| (unreachable) |
| ) |
| (if |
| (i32.const 11) |
| (unreachable) |
| ) |
| (if |
| (i32.const 22) |
| (unreachable) |
| ) |
| (if |
| (i32.const 33) |
| (block |
| (drop |
| (i32.const 0) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 44) |
| (unreachable) |
| ) |
| (if |
| (i32.const 55) |
| (unreachable) |
| ) |
| (if |
| (i32.const 66) |
| (unreachable) |
| ) |
| (if |
| (i32.const 77) |
| (unreachable) |
| ) |
| (if |
| (i32.const 88) |
| (block |
| (drop |
| (i32.const 0) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 99) |
| (unreachable) |
| ) |
| (if |
| (i32.const 100) |
| (block |
| (drop |
| (i32.const 123) |
| ) |
| (drop |
| (i32.const 456) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 101) |
| (block |
| (drop |
| (i32.const 123) |
| ) |
| (unreachable) |
| ) |
| ) |
| (if |
| (i32.const 102) |
| (unreachable) |
| ) |
| (drop |
| (i32.const 1337) |
| ) |
| ) |
| (func $killer (; 2 ;) (type $1) |
| (unreachable) |
| ) |
| (func $target (; 3 ;) (type $1) |
| (drop |
| (i32.const 2000) |
| ) |
| ) |
| (func $typed-block-none-then-unreachable (; 4 ;) (type $FUNCSIG$i) (result i32) |
| (return |
| (i32.const 0) |
| ) |
| ) |
| (func $typed-block-remove-br-changes-type (; 5 ;) (type $FUNCSIG$ii) (param $$$0 i32) (result i32) |
| (block $switch$7 |
| (block $switch-default$10 |
| (block $switch-case$9 |
| (block $switch-case$8 |
| (br_table $switch-case$9 $switch-case$8 $switch-default$10 |
| (i32.const -1) |
| ) |
| ) |
| ) |
| (return |
| (local.get $$$0) |
| ) |
| ) |
| (return |
| (local.get $$$0) |
| ) |
| ) |
| ) |
| (func $global (; 6 ;) (type $1) |
| (unreachable) |
| ) |
| (func $ret (; 7 ;) (type $FUNCSIG$i) (result i32) |
| (return |
| (i32.const 0) |
| ) |
| ) |
| (func $unreachable-br (; 8 ;) (type $FUNCSIG$i) (result i32) |
| (block $out (result i32) |
| (br $out |
| (i32.const 0) |
| ) |
| ) |
| ) |
| (func $unreachable-br-loop (; 9 ;) (type $FUNCSIG$i) (result i32) |
| (loop $out |
| (br $out) |
| ) |
| ) |
| (func $unreachable-block-ends-switch (; 10 ;) (type $FUNCSIG$i) (result i32) |
| (block $label$3 |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (func $unreachable-block-ends-br_if (; 11 ;) (type $FUNCSIG$i) (result i32) |
| (block $label$2 |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (func $unreachable-brs-3 (; 12 ;) (type $FUNCSIG$i) (result i32) |
| (block $label$0 (result i32) |
| (br $label$0 |
| (i32.const 18) |
| ) |
| ) |
| ) |
| (func $unreachable-brs-4 (; 13 ;) (type $FUNCSIG$ii) (param $var$0 i32) (result i32) |
| (drop |
| (i32.const 1) |
| ) |
| (block |
| (drop |
| (i32.const 4104) |
| ) |
| (unreachable) |
| ) |
| ) |
| (func $call-unreach (; 14 ;) (type $FUNCSIG$jjj) (param $var$0 i64) (param $var$1 i64) (result i64) |
| (local $2 i64) |
| (if (result i64) |
| (i64.eqz |
| (local.get $var$0) |
| ) |
| (block $label$0 (result i64) |
| (local.get $var$1) |
| ) |
| (block |
| (drop |
| (i64.sub |
| (local.get $var$0) |
| (i64.const 1) |
| ) |
| ) |
| (block |
| (drop |
| (block $block (result i64) |
| (local.set $2 |
| (local.get $var$0) |
| ) |
| (nop) |
| (local.get $2) |
| ) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| ) |
| (func $br-gone-means-block-type-changes-then-refinalize-at-end-is-too-late (; 15 ;) (type $FUNCSIG$ii) (param $var$0 i32) (result i32) |
| (block $block |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (func $br-with-unreachable-value-should-not-give-a-block-a-value (; 16 ;) (type $FUNCSIG$ii) (param $var$0 i32) (result i32) |
| (block $label$0 (result i32) |
| (block $block |
| (drop |
| (br_if $label$0 |
| (i32.const 8) |
| (local.get $var$0) |
| ) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $replace-br-value-of-i32-with-unreachable (; 17 ;) (type $FUNCSIG$i) (result i32) |
| (block $label$1 |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (func $shorten-block-requires-sync-refinalize (; 18 ;) (type $ii) (param $var$0 i32) (param $var$1 i32) |
| (unreachable) |
| ) |
| (func $block-with-type-but-is-unreachable (; 19 ;) (type $FUNCSIG$ii) (param $var$0 i32) (result i32) |
| (block $block |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (func $if-with-type-but-is-unreachable (; 20 ;) (type $FUNCSIG$ii) (param $var$0 i32) (result i32) |
| (if |
| (local.get $var$0) |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| (func $unreachable-loop (; 21 ;) (type $1) |
| (unreachable) |
| ) |
| (func $br-block-from-unary (; 22 ;) (type $FUNCSIG$i) (result i32) |
| (block $label$6 (result i32) |
| (br $label$6 |
| (i32.const 8) |
| ) |
| ) |
| ) |
| (func $replace-unary-with-br-child (; 23 ;) (type $1) |
| (drop |
| (block $label$6 (result i32) |
| (br $label$6 |
| (i32.const 8) |
| ) |
| ) |
| ) |
| ) |
| (func $br_if-unreach-then-br_if-normal (; 24 ;) (type $1) |
| (block $out |
| (nop) |
| (unreachable) |
| ) |
| ) |
| (func $replace-with-unreachable-affects-parent (; 25 ;) (type $FUNCSIG$vfj) (param $var$0 f32) (param $var$1 i64) |
| (drop |
| (i64.const 0) |
| ) |
| (if |
| (block $block (result i32) |
| (call $replace-with-unreachable-affects-parent |
| (f32.const 1) |
| (i64.const -15917430362925035) |
| ) |
| (i32.const 1) |
| ) |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| (func $replace-block-changes-later-when-if-goes (; 26 ;) (type $1) |
| (block $top |
| (global.set $x |
| (i32.const 0) |
| ) |
| (block $inner |
| (drop |
| (call $helper |
| (f32.const 1) |
| (i64.const -15917430362925035) |
| ) |
| ) |
| (unreachable) |
| ) |
| ) |
| ) |
| (func $helper (; 27 ;) (type $FUNCSIG$ifj) (param $var$0 f32) (param $var$1 i64) (result i32) |
| (i32.const 0) |
| ) |
| ) |
| (module |
| (type $FUNCSIG$v (func)) |
| (global $global (mut f64) (f64.const 0)) |
| (func $0 (; 0 ;) (type $FUNCSIG$v) |
| (if |
| (i32.const 0) |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| ) |
| (module |
| (type $FUNCSIG$v (func)) |
| (func $0 (; 0 ;) (type $FUNCSIG$v) |
| (local $local f64) |
| (if |
| (i32.const 0) |
| (unreachable) |
| (unreachable) |
| ) |
| ) |
| ) |
| (module |
| (type $FUNCSIG$v (func)) |
| (func $foo (; 0 ;) (type $FUNCSIG$v) |
| (nop) |
| ) |
| (func $try_unreachable (; 1 ;) (type $FUNCSIG$v) |
| (try |
| (unreachable) |
| (catch |
| ) |
| ) |
| (call $foo) |
| ) |
| (func $catch_unreachable (; 2 ;) (type $FUNCSIG$v) |
| (try |
| (nop) |
| (catch |
| (unreachable) |
| ) |
| ) |
| (call $foo) |
| ) |
| (func $both_unreachable (; 3 ;) (type $FUNCSIG$v) |
| (try |
| (unreachable) |
| (catch |
| (unreachable) |
| ) |
| ) |
| ) |
| ) |
| (module |
| (type $FUNCSIG$v (func)) |
| (func $foo (; 0 ;) (type $FUNCSIG$v) |
| (nop) |
| ) |
| (func $push_unreachable (; 1 ;) (type $FUNCSIG$v) |
| (push |
| (unreachable) |
| ) |
| ) |
| ) |