;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s -all --roundtrip -S -o - | filecheck %s

;; Regression test for a bug where empty passive segments were incorrectly
;; printed and emitted as though they had func type even if they had a different
;; type, resulting in invalid modules.

(module
 ;; CHECK:      (type $struct (sub (struct)))
 (type $struct (sub (struct)))

 ;; CHECK:      (type $array (sub (array (mut (ref null $struct)))))
 (type $array (sub (array (mut (ref null $struct)))))

 ;; CHECK:      (elem $e (ref null $struct))
 (elem $e (ref null $struct))

 ;; CHECK:      (func $array-init-elem (type $2)
 ;; CHECK-NEXT:  (array.init_elem $array $e
 ;; CHECK-NEXT:   (array.new_fixed $array 0)
 ;; CHECK-NEXT:   (i32.const 0)
 ;; CHECK-NEXT:   (i32.const 0)
 ;; CHECK-NEXT:   (i32.const 0)
 ;; CHECK-NEXT:  )
 ;; CHECK-NEXT: )
 (func $array-init-elem
  (array.init_elem $array $e
   (array.new_fixed $array 0)
   (i32.const 0)
   (i32.const 0)
   (i32.const 0)
  )
 )
)
