(module
  (global $global1 (mut i32) (i32.const 10))
  (global $global2 (mut i32) (i32.const 20))

  (func $test1 (export "test1") (param $any (ref null any))
    ;; This is ok to call: when ignoring external input we assume 0 for the
    ;; parameters, and this parameter is nullable.
    (drop
      (local.get $any)
    )
    (global.set $global1
      (i32.const 11)
    )
  )

  (func $test2 (export "test2") (param $any (ref any))
    ;; This is *not* ok to call: when ignoring external input we assume 0 for
    ;; the parameters, and this parameter is not nullable.
    (drop
      (local.get $any)
    )
    (global.set $global2
      (i32.const 22)
    )
  )

  (func $keepalive (export "keepalive") (result i32)
    (i32.add
      (global.get $global1)
      (global.get $global2)
    )
  )
)
