(module
 (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
 (type $none_=>_none (func))
 (type $none_=>_i32 (func (result i32)))
 (import "env" "atexit" (func $fimport$0 (param i32 i32) (result i32)))
 (import "env" "__cxa_atexit" (func $fimport$1 (param i32 i32) (result i32)))
 (import "env" "_atexit" (func $fimport$2 (param i32 i32) (result i32)))
 (import "env" "___cxa_atexit" (func $fimport$3 (param i32 i32) (result i32)))
 (import "env" "other" (func $fimport$4 (param i32 i32) (result i32)))
 (func $caller
  (drop
   (block (result i32)
    (drop
     (i32.const 0)
    )
    (drop
     (i32.const 1)
    )
    (i32.const 0)
   )
  )
  (drop
   (block (result i32)
    (drop
     (i32.const 0)
    )
    (drop
     (i32.const 1)
    )
    (i32.const 0)
   )
  )
  (drop
   (block (result i32)
    (drop
     (i32.const 0)
    )
    (drop
     (i32.const 1)
    )
    (i32.const 0)
   )
  )
  (drop
   (block (result i32)
    (drop
     (i32.const 0)
    )
    (drop
     (i32.const 1)
    )
    (i32.const 0)
   )
  )
  (drop
   (call $fimport$4
    (i32.const 0)
    (i32.const 1)
   )
  )
  (drop
   (block
    (drop
     (unreachable)
    )
    (drop
     (i32.const 1)
    )
    (unreachable)
   )
  )
 )
 (func $side-effects (result i32)
  (local $x i32)
  (drop
   (block (result i32)
    (drop
     (local.tee $x
      (i32.const 1)
     )
    )
    (drop
     (i32.const 2)
    )
    (i32.const 0)
   )
  )
  (drop
   (block (result i32)
    (drop
     (i32.const 3)
    )
    (drop
     (local.tee $x
      (i32.const 4)
     )
    )
    (i32.const 0)
   )
  )
  (drop
   (block (result i32)
    (drop
     (local.tee $x
      (i32.const 5)
     )
    )
    (drop
     (local.tee $x
      (i32.const 6)
     )
    )
    (i32.const 0)
   )
  )
  (drop
   (block
    (drop
     (unreachable)
    )
    (drop
     (local.tee $x
      (i32.const 7)
     )
    )
    (unreachable)
   )
  )
  (drop
   (block
    (drop
     (local.tee $x
      (i32.const 8)
     )
    )
    (drop
     (unreachable)
    )
    (unreachable)
   )
  )
  (drop
   (block
    (drop
     (unreachable)
    )
    (drop
     (i32.const 9)
    )
    (unreachable)
   )
  )
  (drop
   (block
    (drop
     (i32.const 10)
    )
    (drop
     (unreachable)
    )
    (unreachable)
   )
  )
  (local.get $x)
 )
)
