1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s --generate-stack-ir --optimize-stack-ir \
;; RUN: -all --print-stack-ir | filecheck %s
(module
;; CHECK: (tag $e0 (param i32))
(tag $e0 (param i32))
;; CHECK: (func $eh
;; CHECK-NEXT: try $l0
;; CHECK-NEXT: i32.const 0
;; CHECK-NEXT: throw $e0
;; CHECK-NEXT: catch $e0
;; CHECK-NEXT:
;; CHECK-NEXT: drop
;; CHECK-NEXT: catch_all
;; CHECK-NEXT: rethrow $l0
;; CHECK-NEXT: end
;; CHECK-NEXT: try $l00
;; CHECK-NEXT: try $try
;; CHECK-NEXT: i32.const 0
;; CHECK-NEXT: throw $e0
;; CHECK-NEXT: delegate $l00
;; CHECK-NEXT: unreachable
;; CHECK-NEXT: catch_all
;; CHECK-NEXT: nop
;; CHECK-NEXT: end
;; CHECK-NEXT: try $l01
;; CHECK-NEXT: nop
;; CHECK-NEXT: delegate 0
;; CHECK-NEXT: )
(func $eh
(try $l0
(do
(throw $e0 (i32.const 0))
)
(catch $e0
(drop (pop i32))
)
(catch_all
(rethrow $l0)
)
)
(try $l0
(do
(try
(do
(throw $e0 (i32.const 0))
)
(delegate $l0)
)
)
(catch_all)
)
(try $l0
(do)
(delegate 0) ;; delegate to caller
)
)
)
|