;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.

;; Regression test for a bug in IRBuilder would assign end offsets incorrectly
;; when control flow structures required wrapping.

;; RUN: env BINARYEN_PRINT_FULL=1 wasm-opt %s.wasm -all --debuginfo --print -o /dev/null | filecheck %s

;; Test module generated with `wasm-tools parse` on the following wat:
;; (module
;;   ;; Add a dummy DWARF section so the parser will collect code offsets.
;;   (@custom ".debug_info" "")
;;   (tag $e)
;;   (func
;;     ;; The end offset would never be set because it would be assigned to the
;;     ;; wrapper block instead.
;;     try
;;       br 0
;;     catch $e
;;     end
;;     ;; Same here. Two instructions having the same end offset (0) would cause an
;;     ;; assertion failure.
;;     try
;;       br 0
;;     catch $e
;;     end
;;   )
;; )

;; CHECK:      (type $0 (func))

;; CHECK:      (tag $e (type $0))

;; CHECK:      (func $0 (type $0) (; (ref (exact $func.0)) ;)
;; CHECK-NEXT:  ;;@
;; CHECK-NEXT:  (block (; none ;)
;; CHECK-NEXT:   ;;@
;; CHECK-NEXT:   ;; code offset: 0x3 - 0xa
;; CHECK-NEXT:   (block $label (; none ;)
;; CHECK-NEXT:    ;;@
;; CHECK-NEXT:    (try
;; CHECK-NEXT:     (do
;; CHECK-NEXT:      ;;@
;; CHECK-NEXT:      ;; code offset: 0x5 - 0x7
;; CHECK-NEXT:      (br $label) (; unreachable ;)
;; CHECK-NEXT:     )
;; CHECK-NEXT:     ;; code offset: 0x7
;; CHECK-NEXT:     (catch $e
;; CHECK-NEXT:      ;;@
;; CHECK-NEXT:      (block (; none ;)
;; CHECK-NEXT:      ) ;; end block (; none ;)
;; CHECK-NEXT:     )
;; CHECK-NEXT:    ) ;; end try (; none ;)
;; CHECK-NEXT:   ) ;; end block label
;; CHECK-NEXT:   ;;@
;; CHECK-NEXT:   ;; code offset: 0xa - 0x11
;; CHECK-NEXT:   (block $label1 (; none ;)
;; CHECK-NEXT:    ;;@
;; CHECK-NEXT:    (try
;; CHECK-NEXT:     (do
;; CHECK-NEXT:      ;;@
;; CHECK-NEXT:      ;; code offset: 0xc - 0xe
;; CHECK-NEXT:      (br $label1) (; unreachable ;)
;; CHECK-NEXT:     )
;; CHECK-NEXT:     ;; code offset: 0xe
;; CHECK-NEXT:     (catch $e
;; CHECK-NEXT:      ;;@
;; CHECK-NEXT:      (block (; none ;)
;; CHECK-NEXT:      ) ;; end block (; none ;)
;; CHECK-NEXT:     )
;; CHECK-NEXT:    ) ;; end try (; none ;)
;; CHECK-NEXT:   ) ;; end block label1 (; none ;)
;; CHECK-NEXT:  ) ;; end block (; none ;)
;; CHECK-NEXT: )
