1*e5b127ccSNick Fitzgerald;;! gc = true 2*e5b127ccSNick Fitzgerald;;! bulk_memory = true 3*e5b127ccSNick Fitzgerald 4*e5b127ccSNick Fitzgerald(module 5*e5b127ccSNick Fitzgerald (type $s (struct (field (mut i32)))) 6*e5b127ccSNick Fitzgerald (type $arr (array (ref null $s))) 7*e5b127ccSNick Fitzgerald 8*e5b127ccSNick Fitzgerald (elem $e (ref null $s) (struct.new $s (i32.const 42))) 9*e5b127ccSNick Fitzgerald 10*e5b127ccSNick Fitzgerald (import "wasmtime" "gc" (func $gc)) 11*e5b127ccSNick Fitzgerald 12*e5b127ccSNick Fitzgerald (func (export "test") (result i32) 13*e5b127ccSNick Fitzgerald (array.new_elem $arr $e (i32.const 0) (i32.const 1)) 14*e5b127ccSNick Fitzgerald 15*e5b127ccSNick Fitzgerald (call $gc) 16*e5b127ccSNick Fitzgerald (drop (struct.new $s (i32.const 0))) 17*e5b127ccSNick Fitzgerald (drop (struct.new $s (i32.const 0))) 18*e5b127ccSNick Fitzgerald (drop (struct.new $s (i32.const 0))) 19*e5b127ccSNick Fitzgerald (drop (struct.new $s (i32.const 0))) 20*e5b127ccSNick Fitzgerald (drop (struct.new $s (i32.const 0))) 21*e5b127ccSNick Fitzgerald 22*e5b127ccSNick Fitzgerald (struct.get $s 0 (array.get $arr (i32.const 0))) 23*e5b127ccSNick Fitzgerald ) 24*e5b127ccSNick Fitzgerald) 25*e5b127ccSNick Fitzgerald 26*e5b127ccSNick Fitzgerald(assert_return (invoke "test") (i32.const 42)) 27