;; primary.wast
(module
(global $foo (export "foo") (mut funcref) (ref.func $foo))
(func $foo)
)
;; secondary.wast
(module
(type $f (func))
(import "primary" "foo" (global $gimport$0 (mut funcref)))
(func $bar (export "bar") (type $f)
(return_call_ref $f
(ref.cast (ref null $f)
(global.get $gimport$0)
)
)
)
)
$ wasm-opt -all primary.wast --fuzz-exec-before --fuzz-exec-second=secondary.wast
[fuzz-exec] running second module
[fuzz-exec] calling bar
Fatal: Module::getFunction: foo does not exist
Looks like the return call interpreter machinery does not look up function references in the correct instance.
Looks like the return call interpreter machinery does not look up function references in the correct instance.