blob: 52756d4fc7a4038741bd1f42621bf0ee41d3f266 [file] [log] [blame] [edit]
(module
(rec
;; The funcref field can be optimized away with --gto.
(type $A (struct (field (mut i32)) (field funcref)))
;; This type can be optimized away.
(type $unused (struct))
)
(global $A (ref null $A) (struct.new $A
;; These particular values are not used, and can be removed, leaving the
;; struct.new as struct.new_default.
(i32.const 0)
(ref.func $use-global)
))
(func $use-global (export "use-global") (result i32)
;; This function stores 42 in the global struct, then reads and returns
;; that. We don't manage to optimize away anything in this function, which
;; only serves to keep alive the type and the global for the above testing.
(struct.set $A 0
(global.get $A)
(i32.const 42)
)
(struct.get $A 0
(global.get $A)
)
)
)