(module
 (type $0 (func))
 (type $1 (func (param i32 i32) (result i32)))
 (type $2 (func (result i32)))
 (memory $0 0)
 (func $ifs (; 0 ;) (type $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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $1) (param $x i32) (param $y i32) (result i32)
  (block $out
   (block $out2
    (block
     (drop
      (get_local $x)
     )
     (block
      (br_if $out
       (get_local $y)
      )
      (nop)
     )
    )
    (block
     (if
      (get_local $x)
      (br_if $out
       (get_local $y)
      )
      (br_if $out2
       (get_local $y)
      )
     )
     (nop)
    )
    (if
     (i32.const 1234)
     (if
      (get_local $x)
      (block
       (nop)
       (br_if $out
        (get_local $y)
       )
       (nop)
      )
      (block
       (nop)
       (br_if $out2
        (get_local $y)
       )
       (nop)
      )
     )
    )
    (if
     (get_local $x)
     (block $left
      (br_if $left
       (get_local $y)
      )
      (nop)
     )
     (block
      (br_if $out
       (get_local $y)
      )
      (nop)
     )
    )
    (if
     (get_local $x)
     (block
      (br_if $out
       (get_local $y)
      )
      (nop)
     )
     (block $right
      (br_if $right
       (get_local $y)
      )
      (nop)
     )
    )
   )
   (return
    (i32.const 10)
   )
  )
  (return
   (i32.const 20)
  )
 )
 (func $block (; 8 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $2) (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $2) (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 ;) (type $2) (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 ;) (type $2) (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 ;) (type $2) (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 ;) (type $0)
  (unreachable)
 )
 (func $just-return (; 27 ;) (type $2) (result i32)
  (return
   (i32.add
    (i32.const 1)
    (i32.const 2)
   )
  )
 )
 (func $drop-if-with-value-but-unreachable (; 28 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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 ;) (type $0)
  (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)
  )
 )
)
