[llvm] [WebAssembly] Fix: fixCallUnwindMismatches after fixCatchUnwindMismatches (PR #187484)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 19 05:31:58 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
* 171483 tests passed
* 3053 tests skipped
* 2 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,bulk-memory | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,bulk-memory
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,bulk-memory
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,bulk-memory
# .---command stdout------------
# | .file "<stdin>"
# | .globaltype __stack_pointer, i32
# | .tagtype __cpp_exception i32
# | .functype two_catches () -> ()
# | .functype nested_catch () -> ()
# | .functype nested_try () -> ()
# | .functype loop_within_catch () -> ()
# | .functype block_try_markers () -> ()
# | .functype loop_try_markers (i32) -> ()
# | .functype unwind_mismatches_0 () -> ()
# | .functype unwind_mismatches_1 () -> ()
# | .functype unwind_mismatches_2 () -> ()
# | .functype unwind_mismatches_3 () -> (i32)
# | .functype unwind_mismatches_4 () -> ()
# | .functype unwind_mismatches_5 () -> ()
# | .functype unwind_mismatches_with_loop () -> ()
# | .functype unstackify_when_fixing_unwind_mismatch (i32) -> ()
# | .functype cfg_sort_order (i32) -> ()
# | .functype mem_intrinsics (i32, i32) -> ()
# | .functype try_marker_with_stackified_input () -> ()
# | .functype loop_exception_region () -> ()
# | .functype remove_unnecessary_instrs (i32) -> ()
# | .functype remove_unnecessary_br () -> ()
# | .functype loop_contains_exception (i32) -> ()
# | .functype fix_function_end_return_type_with_try_catch (i32) -> (i32)
# | .functype branch_remapping_after_fixing_unwind_mismatches_0 (i32) -> ()
# | .functype branch_remapping_after_fixing_unwind_mismatches_1 () -> ()
# | .functype wasm_eh_func_info_regression_test () -> ()
# | .functype exception_grouping_0 () -> ()
# | .functype exception_grouping_1 () -> ()
# | .functype exception_grouping_2 () -> ()
# | .functype foo () -> ()
# | .functype bar () -> ()
# | .functype baz () -> (i32)
# | .functype qux (i32) -> (i32)
# | .functype quux (i32) -> ()
# | .functype fun (i32) -> ()
# | .functype nothrow (i32) -> ()
# | .functype nothrow_i32 () -> (i32)
# | .functype _ZN6ObjectD2Ev (i32) -> (i32)
# | .functype _ZN7MyClassD2Ev (i32) -> (i32)
# | .functype _ZN7MyClassC2ERKS_ (i32, i32) -> (i32)
# | .functype __gxx_wasm_personality_v0 (i32) -> (i32)
# | .functype __cxa_allocate_exception (i32) -> (i32)
# | .functype __cxa_throw (i32, i32, i32) -> ()
# | .functype __cxa_begin_catch (i32) -> (i32)
# | .functype __cxa_end_catch () -> ()
# | .functype __cxa_get_exception_ptr (i32) -> (i32)
# | .functype _ZSt9terminatev () -> ()
# | .functype _Unwind_CallPersonality (i32) -> (i32)
# | .section .text.two_catches,"",@
# | .globl two_catches # -- Begin function two_catches
# | .type two_catches, at function
# | two_catches: # @two_catches
# | .Lfunc_begin0:
# | .functype two_catches () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | .Ltmp0: # EH_LABEL
# | call foo
# | .Ltmp1: # EH_LABEL
# | .LBB0_1: # %catch.start
# | .Ltmp2: # EH_LABEL
# | catch __cpp_exception # catch0:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table0
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | local.tee 0
# | i32.const 2
# | i32.ne
# | br_if 0 # 0: down to label1
# | # %bb.2: # %catch2
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label0
# | .LBB0_3: # %catch.fallthrough
# | end_block # label1:
# | block
# | local.get 0
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label2
# | # %bb.4: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label0
# | .LBB0_5: # %rethrow
# | end_block # label2:
# | rethrow 0 # to caller
# | .LBB0_6: # %try.cont
# | end_try # label0:
# | return
# | end_function
# | .Lfunc_end0:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table0:
# | .Lexception0:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase0-.Lttbaseref0
# | .Lttbaseref0:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end0-.Lcst_begin0
# | .Lcst_begin0:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 3 # Action: 2
# | .Lcst_end0:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .int8 2 # >> Action Record 2 <<
# | # Catch TypeInfo 2
# | .int8 125 # Continue to action 1
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 2
# | .int32 _ZTId # TypeInfo 1
# | .Lttbase0:
# | .p2align 2, 0x0
# | .LGCC_except_table_end0:
# | .size GCC_except_table0, .LGCC_except_table_end0-GCC_except_table0
# | # -- End function
# | .section .text.nested_catch,"",@
# | .globl nested_catch # -- Begin function nested_catch
# | .type nested_catch, at function
# | nested_catch: # @nested_catch
# | .Lfunc_begin1:
# | .functype nested_catch () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | .Ltmp3: # EH_LABEL
# | call foo
# | .Ltmp4: # EH_LABEL
# | .LBB1_1: # %catch.start
# | .Ltmp5: # EH_LABEL
# | catch __cpp_exception # catch3:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table1
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label5
# | # %bb.2: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try
# | try
# | .Ltmp6: # EH_LABEL
# | call foo
# | .Ltmp7: # EH_LABEL
# | br 3 # 3: down to label4
# | .LBB1_3: # %catch.start3
# | .Ltmp8: # EH_LABEL
# | catch __cpp_exception # catch7:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table1
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label9
# | # %bb.4: # %catch6
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try
# | .Ltmp9: # EH_LABEL
# | call foo
# | .Ltmp10: # EH_LABEL
# | br 2 # 2: down to label8
# | .LBB1_5: # %ehcleanup
# | .Ltmp11: # EH_LABEL
# | catch_all # catch10:
# | local.get 0
# | global.set __stack_pointer
# | try
# | call __cxa_end_catch
# | # %bb.6:
# | delegate 8 # label/catch11: to caller
# | .LBB1_7:
# | rethrow 0 # down to catch6
# | .LBB1_8: # %rethrow5
# | end_try # label10:
# | end_block # label9:
# | rethrow 1 # down to catch6
# | .LBB1_9: # %invoke.cont8
# | end_block # label8:
# | try
# | call __cxa_end_catch
# | # %bb.10:
# | delegate 5 # label/catch12: to caller
# | .LBB1_11:
# | br 3 # 3: down to label4
# | .LBB1_12: # %ehcleanup9
# | end_try # label7:
# | .Ltmp12: # EH_LABEL
# | catch_all # catch6:
# | local.get 0
# | global.set __stack_pointer
# | call __cxa_end_catch
# | rethrow 0 # to caller
# | .LBB1_13: # %rethrow
# | end_try # label6:
# | end_block # label5:
# | rethrow 1 # to caller
# | .LBB1_14: # %try.cont
# | end_block # label4:
# | call __cxa_end_catch
# | .LBB1_15: # %try.cont11
# | end_try # label3:
# | return
# | end_function
# | .Lfunc_end1:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table1:
# | .Lexception1:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase1-.Lttbaseref1
# | .Lttbaseref1:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end1-.Lcst_begin1
# | .Lcst_begin1:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .Lcst_end1:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase1:
# | .p2align 2, 0x0
# | .LGCC_except_table_end1:
# | .size GCC_except_table1, .LGCC_except_table_end1-GCC_except_table1
# | # -- End function
# | .section .text.nested_try,"",@
# | .globl nested_try # -- Begin function nested_try
# | .type nested_try, at function
# | nested_try: # @nested_try
# | .Lfunc_begin2:
# | .functype nested_try () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | try
# | .Ltmp13: # EH_LABEL
# | call foo
# | .Ltmp14: # EH_LABEL
# | .LBB2_1: # %catch.start
# | .Ltmp15: # EH_LABEL
# | catch __cpp_exception # catch14:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | .Ltmp16: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp17: # EH_LABEL
# | # %bb.2: # %invoke.cont1
# | .LBB2_3: # %catch.start3
# | end_try # label14:
# | .Ltmp18: # EH_LABEL
# | catch __cpp_exception # catch13:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | .LBB2_4: # %try.cont7
# | end_try # label13:
# | return
# | end_function
# | .Lfunc_end2:
# | # -- End function
# | .section .text.loop_within_catch,"",@
# | .globl loop_within_catch # -- Begin function loop_within_catch
# | .type loop_within_catch, at function
# | loop_within_catch: # @loop_within_catch
# | .Lfunc_begin3:
# | .functype loop_within_catch () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | .Ltmp19: # EH_LABEL
# | call foo
# | .Ltmp20: # EH_LABEL
# | .LBB3_1: # %catch.start
# | .Ltmp21: # EH_LABEL
# | catch __cpp_exception # catch15:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | i32.const 0
# | local.set 1
# | .LBB3_2: # %for.cond
# | # =>This Inner Loop Header: Depth=1
# | loop # label16:
# | block
# | block
# | local.get 1
# | i32.const 49
# | i32.gt_s
# | br_if 0 # 0: down to label18
# | # %bb.3: # %for.body
# | # in Loop: Header=BB3_2 Depth=1
# | try
# | .Ltmp22: # EH_LABEL
# | call foo
# | .Ltmp23: # EH_LABEL
# | br 2 # 2: down to label17
# | .LBB3_4: # %ehcleanup
# | .Ltmp24: # EH_LABEL
# | .Ltmp25: # EH_LABEL
# | catch_all # catch19:
# | local.get 0
# | global.set __stack_pointer
# | try
# | call __cxa_end_catch
# | .Ltmp26: # EH_LABEL
# | .LBB3_5: # %terminate
# | .Ltmp27: # EH_LABEL
# | catch_all # catch20:
# | local.get 0
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB3_6: # %invoke.cont2
# | end_try # label20:
# | rethrow 0 # to caller
# | .LBB3_7: # %for.end
# | end_try # label19:
# | end_block # label18:
# | call __cxa_end_catch
# | br 2 # 2: down to label15
# | .LBB3_8: # %for.inc
# | # in Loop: Header=BB3_2 Depth=1
# | end_block # label17:
# | local.get 1
# | i32.const 1
# | i32.add
# | local.set 1
# | br 0 # 0: up to label16
# | .LBB3_9: # %try.cont
# | end_loop
# | end_try # label15:
# | return
# | end_function
# | .Lfunc_end3:
# | # -- End function
# | .section .text.block_try_markers,"",@
# | .globl block_try_markers # -- Begin function block_try_markers
# | .type block_try_markers, at function
# | block_try_markers: # @block_try_markers
# | .Lfunc_begin4:
# | .functype block_try_markers () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | i32.const 0
# | br_if 0 # 0: down to label21
# | # %bb.1: # %bb1
# | try
# | block
# | i32.const 0
# | br_if 0 # 0: down to label23
# | # %bb.2: # %bb3
# | .Ltmp30: # EH_LABEL
# | call foo
# | .Ltmp31: # EH_LABEL
# | br 1 # 1: down to label22
# | .LBB4_3: # %bb4
# | end_block # label23:
# | .Ltmp28: # EH_LABEL
# | call bar
# | .Ltmp29: # EH_LABEL
# | .LBB4_4: # %catch.start
# | .Ltmp32: # EH_LABEL
# | catch __cpp_exception # catch22:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | .LBB4_5: # %try.cont
# | end_try # label22:
# | end_block # label21:
# | return
# | end_function
# | .Lfunc_end4:
# | # -- End function
# | .section .text.loop_try_markers,"",@
# | .globl loop_try_markers # -- Begin function loop_try_markers
# | .type loop_try_markers, at function
# | loop_try_markers: # @loop_try_markers
# | .Lfunc_begin5:
# | .functype loop_try_markers (i32) -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | local.get 0
# | i32.const 0
# | i32.store 0
# | .LBB5_1: # %loop
# | # =>This Inner Loop Header: Depth=1
# | loop # label24:
# | local.get 0
# | i32.const 1
# | i32.store 0
# | try
# | .Ltmp33: # EH_LABEL
# | call foo
# | .Ltmp34: # EH_LABEL
# | br 1 # 1: up to label24
# | .LBB5_2: # %catch.start
# | # in Loop: Header=BB5_1 Depth=1
# | .Ltmp35: # EH_LABEL
# | catch __cpp_exception # catch25:
# | drop
# | local.get 1
# | global.set __stack_pointer
# | br 1 # 1: up to label24
# | .LBB5_3:
# | end_try # label25:
# | end_loop
# | end_function
# | .Lfunc_end5:
# | # -- End function
# | .section .text.unwind_mismatches_0,"",@
# | .globl unwind_mismatches_0 # -- Begin function unwind_mismatches_0
# | .type unwind_mismatches_0, at function
# | unwind_mismatches_0: # @unwind_mismatches_0
# | .Lfunc_begin6:
# | .functype unwind_mismatches_0 () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | try
# | .Ltmp36: # EH_LABEL
# | call foo
# | .Ltmp37: # EH_LABEL
# | .LBB6_1: # %catch.start0
# | .Ltmp38: # EH_LABEL
# | catch __cpp_exception # catch27:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | br 1 # 1: down to label26
# | .LBB6_2: # %bb1
# | end_try # label27:
# | try
# | .Ltmp39: # EH_LABEL
# | call bar
# | .Ltmp40: # EH_LABEL
# | .LBB6_3: # %catch.start1
# | .Ltmp41: # EH_LABEL
# | catch __cpp_exception # catch28:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | .LBB6_4: # %try.cont
# | end_try # label28:
# | end_block # label26:
# | return
# | end_function
# | .Lfunc_end6:
# | # -- End function
# | .section .text.unwind_mismatches_1,"",@
# | .globl unwind_mismatches_1 # -- Begin function unwind_mismatches_1
# | .type unwind_mismatches_1, at function
# | unwind_mismatches_1: # @unwind_mismatches_1
# | .Lfunc_begin7:
# | .functype unwind_mismatches_1 () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | try
# | .Ltmp42: # EH_LABEL
# | call foo
# | .Ltmp43: # EH_LABEL
# | .LBB7_1: # %catch.start0
# | .Ltmp44: # EH_LABEL
# | catch __cpp_exception # catch29:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | # %bb.2: # %try.cont
# | return
# | .LBB7_3: # %bb1
# | end_try # label29:
# | call bar
# | call baz
# | call nothrow
# | return
# | end_function
# | .Lfunc_end7:
# | # -- End function
# | .section .text.unwind_mismatches_2,"",@
# | .globl unwind_mismatches_2 # -- Begin function unwind_mismatches_2
# | .type unwind_mismatches_2, at function
# | unwind_mismatches_2: # @unwind_mismatches_2
# | .Lfunc_begin8:
# | .functype unwind_mismatches_2 () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | try
# | .Ltmp45: # EH_LABEL
# | call foo
# | .Ltmp46: # EH_LABEL
# | .LBB8_1: # %catch.start0
# | .Ltmp47: # EH_LABEL
# | catch __cpp_exception # catch31:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | br 1 # 1: down to label30
# | .LBB8_2: # %bb1
# | end_try # label31:
# | call foo
# | try
# | .Ltmp48: # EH_LABEL
# | call bar
# | .Ltmp49: # EH_LABEL
# | .LBB8_3: # %catch.start1
# | .Ltmp50: # EH_LABEL
# | catch __cpp_exception # catch32:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | .LBB8_4: # %try.cont
# | end_try # label32:
# | end_block # label30:
# | return
# | end_function
# | .Lfunc_end8:
# | # -- End function
# | .section .text.unwind_mismatches_3,"",@
# | .globl unwind_mismatches_3 # -- Begin function unwind_mismatches_3
# | .type unwind_mismatches_3, at function
# | unwind_mismatches_3: # @unwind_mismatches_3
# | .Lfunc_begin9:
# | .functype unwind_mismatches_3 () -> (i32)
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | try
# | .Ltmp51: # EH_LABEL
# | call foo
# | .Ltmp52: # EH_LABEL
# | .LBB9_1: # %catch.start0
# | .Ltmp53: # EH_LABEL
# | catch __cpp_exception # catch33:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | # %bb.2: # %try.cont
# | i32.const 0
# | return
# | .LBB9_3: # %bb1
# | end_try # label33:
# | i32.const 5
# | call qux
# | return
# | end_function
# | .Lfunc_end9:
# | # -- End function
# | .section .text.unwind_mismatches_4,"",@
# | .globl unwind_mismatches_4 # -- Begin function unwind_mismatches_4
# | .type unwind_mismatches_4, at function
# | unwind_mismatches_4: # @unwind_mismatches_4
# | .Lfunc_begin10:
# | .functype unwind_mismatches_4 () -> ()
# | .local i32, i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | try
# | .Ltmp54: # EH_LABEL
# | call foo
# | .Ltmp55: # EH_LABEL
# | .LBB10_1: # %catch.start0
# | .Ltmp56: # EH_LABEL
# | catch __cpp_exception # catch35:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label34
# | .LBB10_2: # %bb1
# | end_try # label35:
# | try
# | .Ltmp57: # EH_LABEL
# | call bar
# | .Ltmp58: # EH_LABEL
# | .LBB10_3: # %catch.start1
# | .Ltmp59: # EH_LABEL
# | catch __cpp_exception # catch36:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | .LBB10_4: # %try.cont
# | end_try # label36:
# | end_block # label34:
# | return
# | end_function
# | .Lfunc_end10:
# | # -- End function
# | .section .text.unwind_mismatches_5,"",@
# | .globl unwind_mismatches_5 # -- Begin function unwind_mismatches_5
# | .type unwind_mismatches_5, at function
# | unwind_mismatches_5: # @unwind_mismatches_5
# | .Lfunc_begin11:
# | .functype unwind_mismatches_5 () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | .Ltmp60: # EH_LABEL
# | try
# | try
# | call baz
# | local.set 1
# | # %bb.1:
# | delegate 1 # label/catch38: to caller
# | .LBB11_2:
# | local.get 1
# | call quux
# | .Ltmp61: # EH_LABEL
# | .LBB11_3: # %ehcleanup
# | .Ltmp62: # EH_LABEL
# | catch_all # catch37:
# | local.get 0
# | global.set __stack_pointer
# | rethrow 0 # to caller
# | .LBB11_4: # %invoke.cont
# | end_try # label37:
# | unreachable
# | end_function
# | .Lfunc_end11:
# | # -- End function
# | .section .text.unwind_mismatches_with_loop,"",@
# | .globl unwind_mismatches_with_loop # -- Begin function unwind_mismatches_with_loop
# | .type unwind_mismatches_with_loop, at function
# | unwind_mismatches_with_loop: # @unwind_mismatches_with_loop
# | .Lfunc_begin12:
# | .functype unwind_mismatches_with_loop () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | try
# | block
# | block
# | try
# | try
# | .Ltmp63: # EH_LABEL
# | call foo
# | .Ltmp64: # EH_LABEL
# | br 2 # 2: down to label41
# | .LBB12_1: # %catch.start0
# | .Ltmp65: # EH_LABEL
# | catch __cpp_exception # catch43:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | br 3 # 3: down to label40
# | .LBB12_2: # %bb1
# | end_try # label43:
# | # %bb.3:
# | delegate 3 # label/catch42: to caller
# | .LBB12_4:
# | end_block # label41:
# | .Ltmp66: # EH_LABEL
# | call bar
# | .Ltmp67: # EH_LABEL
# | .LBB12_5: # %bb2
# | # =>This Inner Loop Header: Depth=1
# | end_block # label40:
# | loop # label44:
# | .Ltmp68: # EH_LABEL
# | call foo
# | .Ltmp69: # EH_LABEL
# | br 0 # 0: up to label44
# | .LBB12_6: # %catch.start1
# | end_loop
# | .Ltmp70: # EH_LABEL
# | catch __cpp_exception # catch39:
# | drop
# | local.get 0
# | global.set __stack_pointer
# | # %bb.7: # %try.cont
# | return
# | .LBB12_8:
# | end_try # label39:
# | end_function
# | .Lfunc_end12:
# | # -- End function
# | .section .text.unstackify_when_fixing_unwind_mismatch,"",@
# | .globl unstackify_when_fixing_unwind_mismatch # -- Begin function unstackify_when_fixing_unwind_mismatch
# | .type unstackify_when_fixing_unwind_mismatch, at function
# | unstackify_when_fixing_unwind_mismatch: # @unstackify_when_fixing_unwind_mismatch
# | .Lfunc_begin13:
# | .functype unstackify_when_fixing_unwind_mismatch (i32) -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 1
# | try
# | .Ltmp71: # EH_LABEL
# | call foo
# | .Ltmp72: # EH_LABEL
# | .LBB13_1: # %catch.start0
# | .Ltmp73: # EH_LABEL
# | catch __cpp_exception # catch45:
# | drop
# | local.get 1
# | global.set __stack_pointer
# | # %bb.2: # %try.cont
# | return
# | .LBB13_3: # %bb1
# | end_try # label45:
# | local.get 0
# | i32.const 4
# | i32.add
# | local.tee 0
# | local.get 0
# | i32.load 0
# | call baz
# | i32.add
# | i32.store 0
# | return
# | end_function
# | .Lfunc_end13:
# | # -- End function
# | .section .text.cfg_sort_order,"",@
# | .globl cfg_sort_order # -- Begin function cfg_sort_order
# | .type cfg_sort_order, at function
# | cfg_sort_order: # @cfg_sort_order
# | .Lfunc_begin14:
# | .functype cfg_sort_order (i32) -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | block
# | local.get 0
# | i32.eqz
# | br_if 0 # 0: down to label46
# | # %bb.1: # %if.then
# | try
# | .Ltmp74: # EH_LABEL
# | call foo
# | .Ltmp75: # EH_LABEL
# | .LBB14_2: # %catch.start
# | .Ltmp76: # EH_LABEL
# | catch __cpp_exception # catch47:
# | local.set 0
# | local.get 1
# | global.set __stack_pointer
# | local.get 0
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label46
# | .LBB14_3: # %cont
# | end_try # label47:
# | call foo
# | .LBB14_4: # %if.end
# | end_block # label46:
# | return
# | end_function
# | .Lfunc_end14:
# | # -- End function
# | .section .text.mem_intrinsics,"",@
# | .globl mem_intrinsics # -- Begin function mem_intrinsics
# | .type mem_intrinsics, at function
# | mem_intrinsics: # @mem_intrinsics
# | .Lfunc_begin15:
# | .functype mem_intrinsics (i32, i32) -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | i32.const 16
# | i32.sub
# | local.tee 2
# | global.set __stack_pointer
# | try
# | .Ltmp77: # EH_LABEL
# | call foo
# | .Ltmp78: # EH_LABEL
# | .LBB15_1: # %ehcleanup
# | .Ltmp79: # EH_LABEL
# | catch_all # catch48:
# | local.get 2
# | global.set __stack_pointer
# | local.get 2
# | i32.const 15
# | i32.add
# | call _ZN6ObjectD2Ev
# | drop
# | rethrow 0 # to caller
# | .LBB15_2: # %invoke.cont
# | end_try # label48:
# | local.get 0
# | local.get 1
# | i32.const 100
# | memory.copy 0, 0
# | local.get 0
# | local.get 1
# | i32.const 100
# | memory.copy 0, 0
# | local.get 0
# | i32.const 0
# | i32.const 100
# | memory.fill 0
# | local.get 2
# | i32.const 15
# | i32.add
# | call _ZN6ObjectD2Ev
# | drop
# | local.get 2
# | i32.const 16
# | i32.add
# | global.set __stack_pointer
# | return
# | end_function
# | .Lfunc_end15:
# | # -- End function
# | .section .text.try_marker_with_stackified_input,"",@
# | .globl try_marker_with_stackified_input # -- Begin function try_marker_with_stackified_input
# | .type try_marker_with_stackified_input, at function
# | try_marker_with_stackified_input: # @try_marker_with_stackified_input
# | .Lfunc_begin16:
# | .functype try_marker_with_stackified_input () -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | .Ltmp80: # EH_LABEL
# | try
# | call nothrow_i32
# | call fun
# | .Ltmp81: # EH_LABEL
# | .LBB16_1: # %terminate
# | .Ltmp82: # EH_LABEL
# | catch_all # catch49:
# | local.get 0
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB16_2: # %invoke.cont
# | end_try # label49:
# | return
# | end_function
# | .Lfunc_end16:
# | # -- End function
# | .section .text.loop_exception_region,"",@
# | .globl loop_exception_region # -- Begin function loop_exception_region
# | .type loop_exception_region, at function
# | loop_exception_region: # @loop_exception_region
# | .Lfunc_begin17:
# | .functype loop_exception_region () -> ()
# | .local i32, i32, i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | i32.const 16
# | i32.sub
# | local.tee 0
# | global.set __stack_pointer
# | i32.const 0
# | local.set 1
# | .LBB17_1: # %for.cond
# | # =>This Inner Loop Header: Depth=1
# | loop # label50:
# | block
# | block
# | local.get 1
# | i32.const 8
# | i32.gt_s
# | br_if 0 # 0: down to label52
# | # %bb.2: # %for.body
# | # in Loop: Header=BB17_1 Depth=1
# | try
# | .Ltmp83: # EH_LABEL
# | local.get 1
# | call quux
# | .Ltmp84: # EH_LABEL
# | br 2 # 2: down to label51
# | .LBB17_3: # %catch.start
# | # in Loop: Header=BB17_1 Depth=1
# | .Ltmp85: # EH_LABEL
# | catch __cpp_exception # catch53:
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table17
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 2
# | call _Unwind_CallPersonality
# | drop
# | block
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label55
# | # %bb.4: # %catch
# | # in Loop: Header=BB17_1 Depth=1
# | local.get 0
# | i32.const 12
# | i32.add
# | local.get 2
# | call __cxa_get_exception_ptr
# | call _ZN7MyClassC2ERKS_
# | local.set 3
# | local.get 2
# | call __cxa_begin_catch
# | drop
# | .Ltmp86: # EH_LABEL
# | try
# | local.get 3
# | i32.load 0
# | call quux
# | .Ltmp87: # EH_LABEL
# | br 2 # 2: down to label54
# | .LBB17_5: # %ehcleanup
# | .Ltmp88: # EH_LABEL
# | catch_all # catch56:
# | local.get 0
# | global.set __stack_pointer
# | local.get 3
# | call _ZN7MyClassD2Ev
# | drop
# | try
# | .Ltmp89: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp90: # EH_LABEL
# | .LBB17_6: # %terminate7
# | .Ltmp91: # EH_LABEL
# | catch_all # catch57:
# | local.get 0
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB17_7: # %invoke.cont6
# | end_try # label57:
# | rethrow 0 # to caller
# | .LBB17_8: # %rethrow
# | end_try # label56:
# | end_block # label55:
# | rethrow 1 # to caller
# | .LBB17_9: # %invoke.cont2
# | # in Loop: Header=BB17_1 Depth=1
# | end_block # label54:
# | local.get 3
# | call _ZN7MyClassD2Ev
# | drop
# | call __cxa_end_catch
# | br 2 # 2: down to label51
# | .LBB17_10: # %for.end
# | end_try # label53:
# | end_block # label52:
# | local.get 0
# | i32.const 16
# | i32.add
# | global.set __stack_pointer
# | return
# | .LBB17_11: # %for.inc
# | # in Loop: Header=BB17_1 Depth=1
# | end_block # label51:
# | local.get 1
# | i32.const 1
# | i32.add
# | local.set 1
# | br 0 # 0: up to label50
# | .LBB17_12:
# | end_loop
# | end_function
# | .Lfunc_end17:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table17:
# | .Lexception2:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase2-.Lttbaseref2
# | .Lttbaseref2:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end2-.Lcst_begin2
# | .Lcst_begin2:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .Lcst_end2:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTI7MyClass # TypeInfo 1
# | .Lttbase2:
# | .p2align 2, 0x0
# | .LGCC_except_table_end2:
# | .size GCC_except_table17, .LGCC_except_table_end2-GCC_except_table17
# | # -- End function
# | .section .text.remove_unnecessary_instrs,"",@
# | .globl remove_unnecessary_instrs # -- Begin function remove_unnecessary_instrs
# | .type remove_unnecessary_instrs, at function
# | remove_unnecessary_instrs: # @remove_unnecessary_instrs
# | .Lfunc_begin18:
# | .functype remove_unnecessary_instrs (i32) -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | try
# | .Ltmp92: # EH_LABEL
# | call foo
# | .Ltmp93: # EH_LABEL
# | # %bb.1: # %for.body.preheader
# | i32.const 0
# | local.set 2
# | .LBB18_2: # %for.body
# | # =>This Inner Loop Header: Depth=1
# | loop # label59:
# | .Ltmp94: # EH_LABEL
# | call foo
# | .Ltmp95: # EH_LABEL
# | # %bb.3: # %for.end
# | # in Loop: Header=BB18_2 Depth=1
# | local.get 2
# | i32.const 1
# | i32.add
# | local.tee 2
# | local.get 0
# | i32.ne
# | br_if 0 # 0: up to label59
# | .LBB18_4: # %catch.start
# | end_loop
# | .Ltmp96: # EH_LABEL
# | catch __cpp_exception # catch58:
# | local.set 2
# | local.get 1
# | global.set __stack_pointer
# | local.get 2
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | .LBB18_5: # %try.cont
# | end_try # label58:
# | return
# | end_function
# | .Lfunc_end18:
# | # -- End function
# | .section .text.remove_unnecessary_br,"",@
# | .globl remove_unnecessary_br # -- Begin function remove_unnecessary_br
# | .type remove_unnecessary_br, at function
# | remove_unnecessary_br: # @remove_unnecessary_br
# | .Lfunc_begin19:
# | .functype remove_unnecessary_br () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | .Ltmp97: # EH_LABEL
# | call foo
# | .Ltmp98: # EH_LABEL
# | # %bb.1: # %invoke.cont
# | try
# | .Ltmp99: # EH_LABEL
# | call foo
# | .Ltmp100: # EH_LABEL
# | .LBB19_2: # %catch.start
# | .Ltmp101: # EH_LABEL
# | catch __cpp_exception # catch61:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | .Ltmp102: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp103: # EH_LABEL
# | # %bb.3: # %invoke.cont2
# | .LBB19_4: # %catch.start4
# | end_try # label61:
# | .Ltmp104: # EH_LABEL
# | catch __cpp_exception # catch60:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | .LBB19_5: # %try.cont8
# | end_try # label60:
# | return
# | end_function
# | .Lfunc_end19:
# | # -- End function
# | .section .text.loop_contains_exception,"",@
# | .globl loop_contains_exception # -- Begin function loop_contains_exception
# | .type loop_contains_exception, at function
# | loop_contains_exception: # @loop_contains_exception
# | .Lfunc_begin20:
# | .functype loop_contains_exception (i32) -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | .LBB20_1: # %while.cond
# | # =>This Inner Loop Header: Depth=1
# | block
# | loop # label63:
# | local.get 0
# | i32.eqz
# | br_if 1 # 1: down to label62
# | # %bb.2: # %while.body
# | # in Loop: Header=BB20_1 Depth=1
# | .Ltmp105: # EH_LABEL
# | local.get 0
# | i32.const -1
# | i32.add
# | local.set 0
# | try
# | call foo
# | .Ltmp106: # EH_LABEL
# | .LBB20_3: # %catch.start
# | # in Loop: Header=BB20_1 Depth=1
# | .Ltmp107: # EH_LABEL
# | catch __cpp_exception # catch64:
# | local.set 2
# | local.get 1
# | global.set __stack_pointer
# | local.get 2
# | call __cxa_begin_catch
# | drop
# | try
# | .Ltmp108: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp109: # EH_LABEL
# | .LBB20_4: # %ehcleanup
# | .Ltmp110: # EH_LABEL
# | catch_all # catch65:
# | local.get 1
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB20_5: # %invoke.cont
# | # in Loop: Header=BB20_1 Depth=1
# | end_try # label65:
# | br 1 # 1: up to label63
# | .LBB20_6: # %while.end
# | end_try # label64:
# | end_loop
# | end_block # label62:
# | return
# | end_function
# | .Lfunc_end20:
# | # -- End function
# | .section .text.fix_function_end_return_type_with_try_catch,"",@
# | .globl fix_function_end_return_type_with_try_catch # -- Begin function fix_function_end_return_type_with_try_catch
# | .type fix_function_end_return_type_with_try_catch, at function
# | fix_function_end_return_type_with_try_catch: # @fix_function_end_return_type_with_try_catch
# | .Lfunc_begin21:
# | .functype fix_function_end_return_type_with_try_catch (i32) -> (i32)
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | i32.const 16
# | i32.sub
# | local.tee 1
# | global.set __stack_pointer
# | local.get 0
# | i32.const 2
# | i32.div_s
# | local.set 2
# | i32.const 0
# | local.set 0
# | .LBB21_1: # %for.cond
# | # =>This Inner Loop Header: Depth=1
# | block
# | loop # label67:
# | block
# | local.get 2
# | local.get 0
# | i32.ne
# | br_if 0 # 0: down to label68
# | # %bb.2: # %if.then
# | try
# | .Ltmp111: # EH_LABEL
# | call baz
# | local.set 0
# | .Ltmp112: # EH_LABEL
# | br 3 # 3: down to label66
# | .LBB21_3: # %ehcleanup
# | .Ltmp113: # EH_LABEL
# | catch_all # catch69:
# | local.get 1
# | global.set __stack_pointer
# | local.get 1
# | i32.const 15
# | i32.add
# | call _ZN6ObjectD2Ev
# | drop
# | rethrow 0 # to caller
# | .LBB21_4: # %for.inc
# | # in Loop: Header=BB21_1 Depth=1
# | end_try # label69:
# | end_block # label68:
# | local.get 0
# | i32.const 1
# | i32.add
# | local.set 0
# | br 0 # 0: up to label67
# | .LBB21_5: # %invoke.cont
# | end_loop
# | end_block # label66:
# | local.get 1
# | i32.const 15
# | i32.add
# | call _ZN6ObjectD2Ev
# | drop
# | local.get 1
# | i32.const 16
# | i32.add
# | global.set __stack_pointer
# | local.get 0
# | return
# | end_function
# | .Lfunc_end21:
# | # -- End function
# | .section .text.branch_remapping_after_fixing_unwind_mismatches_0,"",@
# | .globl branch_remapping_after_fixing_unwind_mismatches_0 # -- Begin function branch_remapping_after_fixing_unwind_mismatches_0
# | .type branch_remapping_after_fixing_unwind_mismatches_0, at function
# | branch_remapping_after_fixing_unwind_mismatches_0: # @branch_remapping_after_fixing_unwind_mismatches_0
# | .Lfunc_begin22:
# | .functype branch_remapping_after_fixing_unwind_mismatches_0 (i32) -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | block
# | block
# | block
# | local.get 0
# | i32.const 1
# | i32.and
# | i32.eqz
# | br_if 0 # 0: down to label72
# | # %bb.1: # %bb0
# | try
# | .Ltmp114: # EH_LABEL
# | call foo
# | .Ltmp115: # EH_LABEL
# | br 2 # 2: down to label71
# | .LBB22_2: # %catch.start0
# | .Ltmp116: # EH_LABEL
# | catch __cpp_exception # catch73:
# | drop
# | local.get 1
# | global.set __stack_pointer
# | br 3 # 3: down to label70
# | .LBB22_3: # %dest
# | end_try # label73:
# | end_block # label72:
# | return
# | .LBB22_4: # %bb1
# | end_block # label71:
# | try
# | .Ltmp117: # EH_LABEL
# | call bar
# | .Ltmp118: # EH_LABEL
# | .LBB22_5: # %catch.start1
# | .Ltmp119: # EH_LABEL
# | catch __cpp_exception # catch74:
# | drop
# | local.get 1
# | global.set __stack_pointer
# | .LBB22_6: # %try.cont
# | end_try # label74:
# | end_block # label70:
# | return
# | end_function
# | .Lfunc_end22:
# | # -- End function
# | .section .text.branch_remapping_after_fixing_unwind_mismatches_1,"",@
# | .globl branch_remapping_after_fixing_unwind_mismatches_1 # -- Begin function branch_remapping_after_fixing_unwind_mismatches_1
# | .type branch_remapping_after_fixing_unwind_mismatches_1, at function
# | branch_remapping_after_fixing_unwind_mismatches_1: # @branch_remapping_after_fixing_unwind_mismatches_1
# | .Lfunc_begin23:
# | .functype branch_remapping_after_fixing_unwind_mismatches_1 () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | block
# | block
# | i32.const 0
# | br_if 0 # 0: down to label76
# | # %bb.1: # %if.then
# | .Ltmp126: # EH_LABEL
# | try
# | i32.const 0
# | i32.const 0
# | i32.const 0
# | call __cxa_throw
# | .Ltmp127: # EH_LABEL
# | br 2 # 2: down to label75
# | .LBB23_2: # %catch.start
# | .Ltmp128: # EH_LABEL
# | catch __cpp_exception # catch77:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table23
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | # %bb.3: # %catchret.dest
# | try
# | .Ltmp129: # EH_LABEL
# | call foo
# | .Ltmp130: # EH_LABEL
# | # %bb.4: # %invoke.cont
# | .Ltmp131: # EH_LABEL
# | i32.const 0
# | i32.const 0
# | i32.const 0
# | call __cxa_throw
# | .Ltmp132: # EH_LABEL
# | br 3 # 3: down to label75
# | .LBB23_5: # %catch.start5
# | .Ltmp133: # EH_LABEL
# | catch __cpp_exception # catch78:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table23
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | unreachable
# | .LBB23_6: # %if.end12
# | end_try # label78:
# | end_try # label77:
# | end_block # label76:
# | try
# | try
# | .Ltmp120: # EH_LABEL
# | call foo
# | .Ltmp121: # EH_LABEL
# | .LBB23_7: # %catch.start17
# | .Ltmp122: # EH_LABEL
# | catch __cpp_exception # catch80:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table23
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 2
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 0
# | br_if 0 # 0: down to label81
# | # %bb.8: # %catch20
# | br 1 # 1: down to label80
# | .LBB23_9: # %rethrow19
# | end_block # label81:
# | rethrow 0 # down to catch79
# | .LBB23_10: # %try.cont23
# | end_try # label80:
# | .Ltmp123: # EH_LABEL
# | call foo
# | .Ltmp124: # EH_LABEL
# | .LBB23_11: # %ehcleanup
# | .Ltmp125: # EH_LABEL
# | catch_all # catch79:
# | local.get 0
# | global.set __stack_pointer
# | rethrow 0 # to caller
# | .LBB23_12: # %invoke.cont24
# | end_try # label79:
# | return
# | .LBB23_13: # %unreachable.for.entry
# | end_block # label75:
# | unreachable
# | end_function
# | .Lfunc_end23:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table23:
# | .Lexception3:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase3-.Lttbaseref3
# | .Lttbaseref3:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end3-.Lcst_begin3
# | .Lcst_begin3:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .int8 2 # >> Call Site 2 <<
# | # On exception at call site 2
# | .int8 1 # Action: 1
# | .Lcst_end3:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase3:
# | .p2align 2, 0x0
# | .LGCC_except_table_end3:
# | .size GCC_except_table23, .LGCC_except_table_end3-GCC_except_table23
# | # -- End function
# | .section .text.wasm_eh_func_info_regression_test,"",@
# | .globl wasm_eh_func_info_regression_test # -- Begin function wasm_eh_func_info_regression_test
# | .type wasm_eh_func_info_regression_test, at function
# | wasm_eh_func_info_regression_test: # @wasm_eh_func_info_regression_test
# | .Lfunc_begin24:
# | .functype wasm_eh_func_info_regression_test () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | try
# | .Ltmp134: # EH_LABEL
# | call foo
# | .Ltmp135: # EH_LABEL
# | .LBB24_1: # %catch.start
# | .Ltmp136: # EH_LABEL
# | catch __cpp_exception # catch83:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table24
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | .Ltmp137: # EH_LABEL
# | try
# | try
# | i32.const 0
# | i32.const 0
# | i32.const 0
# | call __cxa_throw
# | .Ltmp138: # EH_LABEL
# | .LBB24_2: # %catch.start3
# | .Ltmp139: # EH_LABEL
# | catch __cpp_exception # catch85:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table24
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | # %bb.3: # %try.cont
# | .Ltmp140: # EH_LABEL
# | call foo
# | .Ltmp141: # EH_LABEL
# | # %bb.4: # %invoke.cont8
# | .Ltmp142: # EH_LABEL
# | try
# | i32.const 0
# | i32.const 0
# | i32.const 0
# | call __cxa_throw
# | .Ltmp143: # EH_LABEL
# | .LBB24_5: # %catch.start12
# | .Ltmp144: # EH_LABEL
# | catch __cpp_exception # catch86:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table24
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 2
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | unreachable
# | .LBB24_6: # %unreachable
# | end_try # label86:
# | end_try # label85:
# | unreachable
# | .LBB24_7: # %ehcleanup
# | .Ltmp145: # EH_LABEL
# | catch_all # catch84:
# | local.get 0
# | global.set __stack_pointer
# | rethrow 0 # down to catch82
# | .LBB24_8: # %ehcleanup22
# | end_try # label84:
# | end_try # label83:
# | .Ltmp146: # EH_LABEL
# | catch_all # catch82:
# | local.get 0
# | global.set __stack_pointer
# | rethrow 0 # to caller
# | .LBB24_9: # %invoke.cont
# | end_try # label82:
# | unreachable
# | end_function
# | .Lfunc_end24:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table24:
# | .Lexception4:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase4-.Lttbaseref4
# | .Lttbaseref4:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end4-.Lcst_begin4
# | .Lcst_begin4:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .int8 2 # >> Call Site 2 <<
# | # On exception at call site 2
# | .int8 1 # Action: 1
# | .Lcst_end4:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase4:
# | .p2align 2, 0x0
# | .LGCC_except_table_end4:
# | .size GCC_except_table24, .LGCC_except_table_end4-GCC_except_table24
# | # -- End function
# | .section .text.exception_grouping_0,"",@
# | .globl exception_grouping_0 # -- Begin function exception_grouping_0
# | .type exception_grouping_0, at function
# | exception_grouping_0: # @exception_grouping_0
# | .Lfunc_begin25:
# | .functype exception_grouping_0 () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | i32.const 4
# | call __cxa_allocate_exception
# | local.tee 1
# | i32.const 0
# | i32.store 0
# | .Ltmp147: # EH_LABEL
# | block
# | try
# | try
# | local.get 1
# | i32.const _ZTIi
# | i32.const 0
# | call __cxa_throw
# | .Ltmp148: # EH_LABEL
# | br 2 # 2: down to label87
# | .LBB25_1: # %catch.start
# | .Ltmp149: # EH_LABEL
# | catch __cpp_exception # catch89:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table25
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label90
# | # %bb.2: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try
# | call __cxa_end_catch
# | # %bb.3:
# | delegate 4 # label/catch91: to caller
# | .LBB25_4:
# | br 2 # 2: down to label88
# | .LBB25_5: # %rethrow
# | end_block # label90:
# | rethrow 0 # down to catch88
# | .LBB25_6: # %catch.start2
# | end_try # label89:
# | .Ltmp150: # EH_LABEL
# | catch __cpp_exception # catch88:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table25
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label92
# | # %bb.7: # %catch5
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label88
# | .LBB25_8: # %rethrow4
# | end_block # label92:
# | rethrow 0 # to caller
# | .LBB25_9: # %try.cont8
# | end_try # label88:
# | return
# | .LBB25_10: # %unreachable.for.entry
# | end_block # label87:
# | unreachable
# | end_function
# | .Lfunc_end25:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table25:
# | .Lexception5:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase5-.Lttbaseref5
# | .Lttbaseref5:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end5-.Lcst_begin5
# | .Lcst_begin5:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .Lcst_end5:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase5:
# | .p2align 2, 0x0
# | .LGCC_except_table_end5:
# | .size GCC_except_table25, .LGCC_except_table_end5-GCC_except_table25
# | # -- End function
# | .section .text.exception_grouping_1,"",@
# | .globl exception_grouping_1 # -- Begin function exception_grouping_1
# | .type exception_grouping_1, at function
# | exception_grouping_1: # @exception_grouping_1
# | .Lfunc_begin26:
# | .functype exception_grouping_1 () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | try
# | try
# | try
# | .Ltmp151: # EH_LABEL
# | call foo
# | .Ltmp152: # EH_LABEL
# | # %bb.1: # %invoke.cont
# | .Ltmp153: # EH_LABEL
# | call foo
# | .Ltmp154: # EH_LABEL
# | # %bb.2: # %invoke.cont1
# | .Ltmp155: # EH_LABEL
# | call foo
# | .Ltmp156: # EH_LABEL
# | .LBB26_3: # %catch.start
# | .Ltmp157: # EH_LABEL
# | catch __cpp_exception # catch95:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table26
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 2
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label96
# | # %bb.4: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try
# | call __cxa_end_catch
# | # %bb.5:
# | delegate 4 # label/catch97: to caller
# | .LBB26_6:
# | br 3 # 3: down to label93
# | .LBB26_7: # %rethrow
# | end_block # label96:
# | rethrow 0 # down to catch94
# | .LBB26_8: # %catch.start4
# | end_try # label95:
# | .Ltmp158: # EH_LABEL
# | catch __cpp_exception # catch94:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table26
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label98
# | # %bb.9: # %catch7
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try
# | call __cxa_end_catch
# | # %bb.10:
# | delegate 3 # label/catch99: to caller
# | .LBB26_11:
# | br 2 # 2: down to label93
# | .LBB26_12: # %rethrow6
# | end_block # label98:
# | rethrow 0 # down to catch93
# | .LBB26_13: # %catch.start12
# | end_try # label94:
# | .Ltmp159: # EH_LABEL
# | catch __cpp_exception # catch93:
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table26
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label100
# | # %bb.14: # %catch15
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label93
# | .LBB26_15: # %rethrow14
# | end_block # label100:
# | rethrow 0 # to caller
# | .LBB26_16: # %try.cont18
# | end_try # label93:
# | return
# | end_function
# | .Lfunc_end26:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table26:
# | .Lexception6:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase6-.Lttbaseref6
# | .Lttbaseref6:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end6-.Lcst_begin6
# | .Lcst_begin6:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .int8 2 # >> Call Site 2 <<
# | # On exception at call site 2
# | .int8 1 # Action: 1
# | .Lcst_end6:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase6:
# | .p2align 2, 0x0
# | .LGCC_except_table_end6:
# | .size GCC_except_table26, .LGCC_except_table_end6-GCC_except_table26
# | # -- End function
# | .section .text.exception_grouping_2,"",@
# | .globl exception_grouping_2 # -- Begin function exception_grouping_2
# | .type exception_grouping_2, at function
# | exception_grouping_2: # @exception_grouping_2
# | .functype exception_grouping_2 () -> ()
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | drop
# | i32.const 4
# | call __cxa_allocate_exception
# | drop
# | unreachable
# | end_function
# | # -- End function
# | .no_dead_strip __indirect_function_table
# | .size _ZTIi, 4
# | .size _ZTId, 4
# | .size _ZTI7MyClass, 8
# | .size __wasm_lpad_context, 12
# | .section .custom_section.target_features,"",@
# | .int8 10
# | .int8 43
# | .int8 11
# | .ascii "bulk-memory"
# | .int8 43
# | .int8 15
# | .ascii "bulk-memory-opt"
# | .int8 43
# | .int8 22
# | .ascii "call-indirect-overlong"
# | .int8 43
# | .int8 18
# | .ascii "exception-handling"
# | .int8 43
# | .int8 10
# | .ascii "multivalue"
# | .int8 43
# | .int8 15
# | .ascii "mutable-globals"
# | .int8 43
# | .int8 19
# | .ascii "nontrapping-fptoint"
# | .int8 43
# | .int8 15
# | .ascii "reference-types"
# | .int8 43
# | .int8 8
# | .ascii "sign-ext"
# | .int8 45
# | .int8 10
# | .ascii "shared-mem"
# | .section .text.exception_grouping_2,"",@
# `-----------------------------
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll -O0 -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -verify-machineinstrs -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll --check-prefix=NOOPT
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -O0 -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -verify-machineinstrs -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll --check-prefix=NOOPT
# note: command had no output on stdout or stderr
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt -wasm-disable-ehpad-sort -stats 2>&1 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll --check-prefix=NOSORT
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-wasm-fallthrough-return-opt -wasm-disable-explicit-locals -wasm-keep-registers -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt -wasm-disable-ehpad-sort -stats
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll --check-prefix=NOSORT
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll:665:11: error: NOSORT: expected string not found in input
# | ; NOSORT: delegate 3 # label/catch{{[0-9]+}}: to caller
# | ^
# | <stdin>:636:22: note: scanning from here
# | call __cxa_end_catch
# | ^
# | <stdin>:656:2: note: possible intended match here
# | delegate 1 # label/catch45: to caller
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll:1739:11: error: NOSORT: expected string not found in input
# | ; NOSORT: 24 wasm-cfg-stackify - Number of call unwind mismatches found
# | ^
# | <stdin>:1205:9: note: scanning from here
# | br_if 0, $pop2 # 0: down to label82
# | ^
# | <stdin>:1244:76: note: possible intended match here
# | .globl branch_remapping_after_fixing_unwind_mismatches_1 # -- Begin function branch_remapping_after_fixing_unwind_mismatches_1
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh-legacy.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 631: .LBB10_7: # %catch.start1
# | 632: .Ltmp59: # EH_LABEL
# | 633: catch $0=, __cpp_exception # catch40:
# | 634: global.set __stack_pointer, $1
# | 635: call $drop=, __cxa_begin_catch, $0
# | 636: call __cxa_end_catch
# | check:665'0 X error: no match found
# | 637: .LBB10_8: # %try.cont
# | check:665'0 ~~~~~~~~~~~~~~~~~~~~~~
# | 638: end_try # label40:
# | check:665'0 ~~~~~~~~~~~~~~~~~~~~
# | 639: return
# | check:665'0 ~~~~~~~~
# | 640: end_function
# | check:665'0 ~~~~~~~~~~~~~~
# | 641: .Lfunc_end10:
# | check:665'0 ~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 651: .Ltmp60: # EH_LABEL
# | check:665'0 ~~~~~~~~~~~~~~~~~~~~
# | 652: try
# | check:665'0 ~~~~~~
# | 653: try
# | check:665'0 ~~~~~~
# | 654: call $0=, baz
# | check:665'0 ~~~~~~~~~~~~~~~
# | 655: # %bb.1:
# | check:665'0 ~~~~~~~~~
# | 656: delegate 1 # label/catch45: to caller
# | check:665'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:665'1 ? possible intended match
# | 657: .LBB11_2:
# | check:665'0 ~~~~~~~~~~
# | 658: call quux, $0
# | check:665'0 ~~~~~~~~~~~~~~~
# | 659: .Ltmp61: # EH_LABEL
# | check:665'0 ~~~~~~~~~~~~~~~~~~~~
# | 660: # %bb.3: # %invoke.cont
# | check:665'0 ~~~~~~~~~~~~~~~~~~~~~~~~
# | 661: unreachable
# | check:665'0 ~~~~~~~~~~~~~
# | .
# | .
# | .
# | 1200: try
# | 1201: block
# | 1202: i32.const $push0=, 1
# | 1203: i32.and $push1=, $0, $pop0
# | 1204: i32.eqz $push2=, $pop1
# | 1205: br_if 0, $pop2 # 0: down to label82
# | check:1739'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | 1206: # %bb.1: # %bb0
# | check:1739'0 ~~~~~~~~~~~~~~~~
# | 1207: try
# | check:1739'0 ~~~~~~
# | 1208: try
# | check:1739'0 ~~~~~~
# | 1209: .Ltmp114: # EH_LABEL
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~~~
# | 1210: call foo
# | check:1739'0 ~~~~~~~~~~
# | .
# | .
# | .
# | 1239: return
# | check:1739'0 ~~~~~~~~
# | 1240: end_function
# | check:1739'0 ~~~~~~~~~~~~~~
# | 1241: .Lfunc_end22:
# | check:1739'0 ~~~~~~~~~~~~~~
# | 1242: # -- End function
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~
# | 1243: .section .text.branch_remapping_after_fixing_unwind_mismatches_1,"",@
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1244: .globl branch_remapping_after_fixing_unwind_mismatches_1 # -- Begin function branch_remapping_after_fixing_unwind_mismatches_1
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:1739'1 ? possible intended match
# | 1245: .type branch_remapping_after_fixing_unwind_mismatches_1, at function
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1246: branch_remapping_after_fixing_unwind_mismatches_1: # @branch_remapping_after_fixing_unwind_mismatches_1
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1247: .Lfunc_begin23:
# | check:1739'0 ~~~~~~~~~~~~~~~~
# | 1248: .functype branch_remapping_after_fixing_unwind_mismatches_1 () -> ()
# | check:1739'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1249: # %bb.0: # %entry
# | check:1739'0 ~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/WebAssembly/cfg-stackify-eh.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,bulk-memory | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,bulk-memory
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,bulk-memory
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,bulk-memory
# .---command stdout------------
# | .file "<stdin>"
# | .globaltype __stack_pointer, i32
# | .tagtype __cpp_exception i32
# | .functype two_catches () -> ()
# | .functype nested_catch () -> ()
# | .functype nested_try () -> ()
# | .functype loop_within_catch () -> ()
# | .functype block_try_table_markers () -> ()
# | .functype loop_try_table_markers (i32) -> ()
# | .functype unwind_mismatches_0 () -> ()
# | .functype unwind_mismatches_1 () -> ()
# | .functype unwind_mismatches_2 () -> ()
# | .functype unwind_mismatches_3 () -> (i32)
# | .functype unwind_mismatches_4 () -> ()
# | .functype unwind_mismatches_5 () -> ()
# | .functype unwind_mismatches_with_loop () -> ()
# | .functype unstackify_when_fixing_unwind_mismatch (i32) -> ()
# | .functype cfg_sort_order (i32) -> ()
# | .functype mem_intrinsics (i32, i32) -> ()
# | .functype try_table_marker_with_stackified_input () -> ()
# | .functype loop_exception_region () -> ()
# | .functype loop_contains_exception (i32) -> ()
# | .functype wasm_eh_func_info_regression_test () -> ()
# | .functype exception_grouping_0 () -> ()
# | .functype exception_grouping_1 () -> ()
# | .functype exception_grouping_2 () -> ()
# | .functype foo () -> ()
# | .functype bar () -> ()
# | .functype baz () -> (i32)
# | .functype qux (i32) -> (i32)
# | .functype quux (i32) -> ()
# | .functype fun (i32) -> ()
# | .functype nothrow (i32) -> ()
# | .functype nothrow_i32 () -> (i32)
# | .functype _ZN6ObjectD2Ev (i32) -> (i32)
# | .functype _ZN7MyClassD2Ev (i32) -> (i32)
# | .functype _ZN7MyClassC2ERKS_ (i32, i32) -> (i32)
# | .functype __gxx_wasm_personality_v0 (i32) -> (i32)
# | .functype __cxa_allocate_exception (i32) -> (i32)
# | .functype __cxa_throw (i32, i32, i32) -> ()
# | .functype __cxa_begin_catch (i32) -> (i32)
# | .functype __cxa_end_catch () -> ()
# | .functype __cxa_get_exception_ptr (i32) -> (i32)
# | .functype _ZSt9terminatev () -> ()
# | .functype _Unwind_CallPersonality (i32) -> (i32)
# | .section .text.two_catches,"",@
# | .globl two_catches # -- Begin function two_catches
# | .type two_catches, at function
# | two_catches: # @two_catches
# | .Lfunc_begin0:
# | .functype two_catches () -> ()
# | .local i32, i32, exnref
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | block
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label1
# | .Ltmp0: # EH_LABEL
# | call foo
# | .Ltmp1: # EH_LABEL
# | br 2 # 2: down to label0
# | # %bb.1:
# | end_try_table # label2:
# | unreachable
# | .LBB0_2: # %catch.start
# | end_block # label1:
# | .Ltmp2: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table0
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | local.tee 0
# | i32.const 2
# | i32.ne
# | br_if 0 # 0: down to label3
# | # %bb.3: # %catch2
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label0
# | .LBB0_4: # %catch.fallthrough
# | end_block # label3:
# | block
# | local.get 0
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label4
# | # %bb.5: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label0
# | .LBB0_6: # %rethrow
# | end_block # label4:
# | local.get 2
# | throw_ref
# | .LBB0_7: # %try.cont
# | end_block # label0:
# | return
# | end_function
# | .Lfunc_end0:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table0:
# | .Lexception0:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase0-.Lttbaseref0
# | .Lttbaseref0:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end0-.Lcst_begin0
# | .Lcst_begin0:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 3 # Action: 2
# | .Lcst_end0:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .int8 2 # >> Action Record 2 <<
# | # Catch TypeInfo 2
# | .int8 125 # Continue to action 1
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 2
# | .int32 _ZTId # TypeInfo 1
# | .Lttbase0:
# | .p2align 2, 0x0
# | .LGCC_except_table_end0:
# | .size GCC_except_table0, .LGCC_except_table_end0-GCC_except_table0
# | # -- End function
# | .section .text.nested_catch,"",@
# | .globl nested_catch # -- Begin function nested_catch
# | .type nested_catch, at function
# | nested_catch: # @nested_catch
# | .Lfunc_begin1:
# | .functype nested_catch () -> ()
# | .local i32, i32, exnref, exnref
# | # %bb.0: # %entry
# | block exnref
# | global.get __stack_pointer
# | local.set 0
# | block
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label7
# | .Ltmp3: # EH_LABEL
# | call foo
# | .Ltmp4: # EH_LABEL
# | br 2 # 2: down to label6
# | # %bb.1:
# | end_try_table # label8:
# | unreachable
# | .LBB1_2: # %catch.start
# | end_block # label7:
# | .Ltmp5: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table1
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label10
# | # %bb.3: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label11
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label13
# | .Ltmp6: # EH_LABEL
# | call foo
# | .Ltmp7: # EH_LABEL
# | br 5 # 5: down to label9
# | # %bb.4:
# | end_try_table # label14:
# | unreachable
# | .LBB1_5: # %catch.start3
# | end_block # label13:
# | .Ltmp8: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table1
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label16
# | # %bb.6: # %catch6
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label17
# | .Ltmp9: # EH_LABEL
# | call foo
# | .Ltmp10: # EH_LABEL
# | br 3 # 3: down to label15
# | # %bb.7:
# | end_try_table # label18:
# | unreachable
# | .LBB1_8: # %ehcleanup
# | end_block # label17:
# | .Ltmp11: # EH_LABEL
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | try_table (catch_all_ref 7) # 7: down to label5
# | call __cxa_end_catch
# | # %bb.9:
# | end_try_table # label19:
# | .LBB1_10:
# | local.get 2
# | throw_ref
# | .LBB1_11: # %rethrow5
# | end_block # label16:
# | local.get 2
# | throw_ref
# | .LBB1_12: # %invoke.cont8
# | end_block # label15:
# | try_table (catch_all_ref 5) # 5: down to label5
# | call __cxa_end_catch
# | # %bb.13:
# | end_try_table # label20:
# | .LBB1_14:
# | br 3 # 3: down to label9
# | # %bb.15:
# | end_try_table # label12:
# | unreachable
# | .LBB1_16: # %ehcleanup9
# | end_block # label11:
# | .Ltmp12: # EH_LABEL
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | call __cxa_end_catch
# | local.get 2
# | throw_ref
# | .LBB1_17: # %rethrow
# | end_block # label10:
# | local.get 2
# | throw_ref
# | .LBB1_18: # %try.cont
# | end_block # label9:
# | call __cxa_end_catch
# | .LBB1_19: # %try.cont11
# | end_block # label6:
# | return
# | unreachable
# | .LBB1_20:
# | end_block # label5:
# | local.set 3
# | local.get 3
# | throw_ref
# | end_function
# | .Lfunc_end1:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table1:
# | .Lexception1:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase1-.Lttbaseref1
# | .Lttbaseref1:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end1-.Lcst_begin1
# | .Lcst_begin1:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .Lcst_end1:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase1:
# | .p2align 2, 0x0
# | .LGCC_except_table_end1:
# | .size GCC_except_table1, .LGCC_except_table_end1-GCC_except_table1
# | # -- End function
# | .section .text.nested_try,"",@
# | .globl nested_try # -- Begin function nested_try
# | .type nested_try, at function
# | nested_try: # @nested_try
# | .Lfunc_begin2:
# | .functype nested_try () -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label22
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label24
# | .Ltmp13: # EH_LABEL
# | call foo
# | .Ltmp14: # EH_LABEL
# | br 4 # 4: down to label21
# | # %bb.1:
# | end_try_table # label25:
# | unreachable
# | .LBB2_2: # %catch.start
# | end_block # label24:
# | .Ltmp15: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | .Ltmp16: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp17: # EH_LABEL
# | # %bb.3: # %invoke.cont1
# | br 2 # 2: down to label21
# | # %bb.4:
# | end_try_table # label23:
# | unreachable
# | .LBB2_5: # %catch.start3
# | end_block # label22:
# | .Ltmp18: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | .LBB2_6: # %try.cont7
# | end_block # label21:
# | return
# | end_function
# | .Lfunc_end2:
# | # -- End function
# | .section .text.loop_within_catch,"",@
# | .globl loop_within_catch # -- Begin function loop_within_catch
# | .type loop_within_catch, at function
# | loop_within_catch: # @loop_within_catch
# | .Lfunc_begin3:
# | .functype loop_within_catch () -> ()
# | .local i32, i32, exnref
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label27
# | .Ltmp19: # EH_LABEL
# | call foo
# | .Ltmp20: # EH_LABEL
# | br 2 # 2: down to label26
# | # %bb.1:
# | end_try_table # label28:
# | unreachable
# | .LBB3_2: # %catch.start
# | end_block # label27:
# | .Ltmp21: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | i32.const 0
# | local.set 1
# | .LBB3_3: # %for.cond
# | # =>This Inner Loop Header: Depth=1
# | loop # label29:
# | block
# | block
# | local.get 1
# | i32.const 49
# | i32.gt_s
# | br_if 0 # 0: down to label31
# | # %bb.4: # %for.body
# | # in Loop: Header=BB3_3 Depth=1
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label32
# | .Ltmp22: # EH_LABEL
# | call foo
# | .Ltmp23: # EH_LABEL
# | br 3 # 3: down to label30
# | # %bb.5:
# | end_try_table # label33:
# | unreachable
# | .LBB3_6: # %ehcleanup
# | end_block # label32:
# | .Ltmp24: # EH_LABEL
# | .Ltmp25: # EH_LABEL
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | block
# | block
# | try_table (catch_all 0) # 0: down to label35
# | call __cxa_end_catch
# | .Ltmp26: # EH_LABEL
# | br 2 # 2: down to label34
# | # %bb.7:
# | end_try_table # label36:
# | unreachable
# | .LBB3_8: # %terminate
# | end_block # label35:
# | .Ltmp27: # EH_LABEL
# | local.get 0
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB3_9: # %invoke.cont2
# | end_block # label34:
# | local.get 2
# | throw_ref
# | .LBB3_10: # %for.end
# | end_block # label31:
# | call __cxa_end_catch
# | br 2 # 2: down to label26
# | .LBB3_11: # %for.inc
# | # in Loop: Header=BB3_3 Depth=1
# | end_block # label30:
# | local.get 1
# | i32.const 1
# | i32.add
# | local.set 1
# | br 0 # 0: up to label29
# | .LBB3_12: # %try.cont
# | end_loop
# | end_block # label26:
# | return
# | end_function
# | .Lfunc_end3:
# | # -- End function
# | .section .text.block_try_table_markers,"",@
# | .globl block_try_table_markers # -- Begin function block_try_table_markers
# | .type block_try_table_markers, at function
# | block_try_table_markers: # @block_try_table_markers
# | .Lfunc_begin4:
# | .functype block_try_table_markers () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | i32.const 0
# | br_if 0 # 0: down to label37
# | # %bb.1: # %bb1
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label38
# | block
# | i32.const 0
# | br_if 0 # 0: down to label40
# | # %bb.2: # %bb3
# | .Ltmp30: # EH_LABEL
# | call foo
# | .Ltmp31: # EH_LABEL
# | br 3 # 3: down to label37
# | .LBB4_3: # %bb4
# | end_block # label40:
# | .Ltmp28: # EH_LABEL
# | call bar
# | .Ltmp29: # EH_LABEL
# | br 2 # 2: down to label37
# | # %bb.4:
# | end_try_table # label39:
# | unreachable
# | .LBB4_5: # %catch.start
# | end_block # label38:
# | .Ltmp32: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | .LBB4_6: # %try.cont
# | end_block # label37:
# | return
# | end_function
# | .Lfunc_end4:
# | # -- End function
# | .section .text.loop_try_table_markers,"",@
# | .globl loop_try_table_markers # -- Begin function loop_try_table_markers
# | .type loop_try_table_markers, at function
# | loop_try_table_markers: # @loop_try_table_markers
# | .Lfunc_begin5:
# | .functype loop_try_table_markers (i32) -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | local.get 0
# | i32.const 0
# | i32.store 0
# | .LBB5_1: # %loop
# | # =>This Inner Loop Header: Depth=1
# | loop # label41:
# | local.get 0
# | i32.const 1
# | i32.store 0
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label42
# | .Ltmp33: # EH_LABEL
# | call foo
# | .Ltmp34: # EH_LABEL
# | br 2 # 2: up to label41
# | # %bb.2:
# | end_try_table # label43:
# | unreachable
# | .LBB5_3: # %catch.start
# | # in Loop: Header=BB5_1 Depth=1
# | end_block # label42:
# | .Ltmp35: # EH_LABEL
# | drop
# | local.get 1
# | global.set __stack_pointer
# | br 0 # 0: up to label41
# | .LBB5_4:
# | end_loop
# | end_function
# | .Lfunc_end5:
# | # -- End function
# | .section .text.unwind_mismatches_0,"",@
# | .globl unwind_mismatches_0 # -- Begin function unwind_mismatches_0
# | .type unwind_mismatches_0, at function
# | unwind_mismatches_0: # @unwind_mismatches_0
# | .Lfunc_begin6:
# | .functype unwind_mismatches_0 () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label46
# | .Ltmp36: # EH_LABEL
# | call foo
# | .Ltmp37: # EH_LABEL
# | br 2 # 2: down to label45
# | # %bb.1:
# | end_try_table # label47:
# | unreachable
# | .LBB6_2: # %catch.start0
# | end_block # label46:
# | .Ltmp38: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | br 1 # 1: down to label44
# | .LBB6_3: # %bb1
# | end_block # label45:
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label48
# | .Ltmp39: # EH_LABEL
# | call bar
# | .Ltmp40: # EH_LABEL
# | br 2 # 2: down to label44
# | # %bb.4:
# | end_try_table # label49:
# | unreachable
# | .LBB6_5: # %catch.start1
# | end_block # label48:
# | .Ltmp41: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | .LBB6_6: # %try.cont
# | end_block # label44:
# | return
# | end_function
# | .Lfunc_end6:
# | # -- End function
# | .section .text.unwind_mismatches_1,"",@
# | .globl unwind_mismatches_1 # -- Begin function unwind_mismatches_1
# | .type unwind_mismatches_1, at function
# | unwind_mismatches_1: # @unwind_mismatches_1
# | .Lfunc_begin7:
# | .functype unwind_mismatches_1 () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label51
# | .Ltmp42: # EH_LABEL
# | call foo
# | .Ltmp43: # EH_LABEL
# | br 2 # 2: down to label50
# | # %bb.1:
# | end_try_table # label52:
# | unreachable
# | .LBB7_2: # %catch.start0
# | end_block # label51:
# | .Ltmp44: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | # %bb.3: # %try.cont
# | return
# | .LBB7_4: # %bb1
# | end_block # label50:
# | call bar
# | call baz
# | call nothrow
# | return
# | end_function
# | .Lfunc_end7:
# | # -- End function
# | .section .text.unwind_mismatches_2,"",@
# | .globl unwind_mismatches_2 # -- Begin function unwind_mismatches_2
# | .type unwind_mismatches_2, at function
# | unwind_mismatches_2: # @unwind_mismatches_2
# | .Lfunc_begin8:
# | .functype unwind_mismatches_2 () -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label55
# | .Ltmp45: # EH_LABEL
# | call foo
# | .Ltmp46: # EH_LABEL
# | br 2 # 2: down to label54
# | # %bb.1:
# | end_try_table # label56:
# | unreachable
# | .LBB8_2: # %catch.start0
# | end_block # label55:
# | .Ltmp47: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | br 1 # 1: down to label53
# | .LBB8_3: # %bb1
# | end_block # label54:
# | call foo
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label57
# | .Ltmp48: # EH_LABEL
# | call bar
# | .Ltmp49: # EH_LABEL
# | br 2 # 2: down to label53
# | # %bb.4:
# | end_try_table # label58:
# | unreachable
# | .LBB8_5: # %catch.start1
# | end_block # label57:
# | .Ltmp50: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | .LBB8_6: # %try.cont
# | end_block # label53:
# | return
# | end_function
# | .Lfunc_end8:
# | # -- End function
# | .section .text.unwind_mismatches_3,"",@
# | .globl unwind_mismatches_3 # -- Begin function unwind_mismatches_3
# | .type unwind_mismatches_3, at function
# | unwind_mismatches_3: # @unwind_mismatches_3
# | .Lfunc_begin9:
# | .functype unwind_mismatches_3 () -> (i32)
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label60
# | .Ltmp51: # EH_LABEL
# | call foo
# | .Ltmp52: # EH_LABEL
# | br 2 # 2: down to label59
# | # %bb.1:
# | end_try_table # label61:
# | unreachable
# | .LBB9_2: # %catch.start0
# | end_block # label60:
# | .Ltmp53: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | # %bb.3: # %try.cont
# | i32.const 0
# | return
# | .LBB9_4: # %bb1
# | end_block # label59:
# | i32.const 5
# | call qux
# | return
# | end_function
# | .Lfunc_end9:
# | # -- End function
# | .section .text.unwind_mismatches_4,"",@
# | .globl unwind_mismatches_4 # -- Begin function unwind_mismatches_4
# | .type unwind_mismatches_4, at function
# | unwind_mismatches_4: # @unwind_mismatches_4
# | .Lfunc_begin10:
# | .functype unwind_mismatches_4 () -> ()
# | .local i32, i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 0
# | block
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label64
# | .Ltmp54: # EH_LABEL
# | call foo
# | .Ltmp55: # EH_LABEL
# | br 2 # 2: down to label63
# | # %bb.1:
# | end_try_table # label65:
# | unreachable
# | .LBB10_2: # %catch.start0
# | end_block # label64:
# | .Ltmp56: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label62
# | .LBB10_3: # %bb1
# | end_block # label63:
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label66
# | .Ltmp57: # EH_LABEL
# | call bar
# | .Ltmp58: # EH_LABEL
# | br 2 # 2: down to label62
# | # %bb.4:
# | end_try_table # label67:
# | unreachable
# | .LBB10_5: # %catch.start1
# | end_block # label66:
# | .Ltmp59: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | .LBB10_6: # %try.cont
# | end_block # label62:
# | return
# | end_function
# | .Lfunc_end10:
# | # -- End function
# | .section .text.unwind_mismatches_5,"",@
# | .globl unwind_mismatches_5 # -- Begin function unwind_mismatches_5
# | .type unwind_mismatches_5, at function
# | unwind_mismatches_5: # @unwind_mismatches_5
# | .Lfunc_begin11:
# | .functype unwind_mismatches_5 () -> ()
# | .local i32, i32, exnref, exnref
# | # %bb.0: # %entry
# | block exnref
# | global.get __stack_pointer
# | local.set 0
# | .Ltmp60: # EH_LABEL
# | block
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label70
# | try_table (catch_all_ref 3) # 3: down to label68
# | call baz
# | local.set 1
# | # %bb.1:
# | end_try_table # label72:
# | .LBB11_2:
# | local.get 1
# | call quux
# | .Ltmp61: # EH_LABEL
# | br 2 # 2: down to label69
# | # %bb.3:
# | end_try_table # label71:
# | unreachable
# | .LBB11_4: # %ehcleanup
# | end_block # label70:
# | .Ltmp62: # EH_LABEL
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | local.get 2
# | throw_ref
# | .LBB11_5: # %invoke.cont
# | end_block # label69:
# | unreachable
# | unreachable
# | .LBB11_6:
# | end_block # label68:
# | local.set 3
# | local.get 3
# | throw_ref
# | end_function
# | .Lfunc_end11:
# | # -- End function
# | .section .text.unwind_mismatches_with_loop,"",@
# | .globl unwind_mismatches_with_loop # -- Begin function unwind_mismatches_with_loop
# | .type unwind_mismatches_with_loop, at function
# | unwind_mismatches_with_loop: # @unwind_mismatches_with_loop
# | .Lfunc_begin12:
# | .functype unwind_mismatches_with_loop () -> ()
# | .local i32, exnref
# | # %bb.0: # %bb0
# | block exnref
# | global.get __stack_pointer
# | local.set 0
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label74
# | block
# | block
# | block i32
# | try_table (catch_all_ref 5) # 5: down to label73
# | try_table (catch __cpp_exception 1) # 1: down to label78
# | .Ltmp63: # EH_LABEL
# | call foo
# | .Ltmp64: # EH_LABEL
# | br 3 # 3: down to label77
# | # %bb.1:
# | end_try_table # label80:
# | # %bb.2:
# | end_try_table # label79:
# | .LBB12_3:
# | unreachable
# | .LBB12_4: # %catch.start0
# | end_block # label78:
# | .Ltmp65: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | br 1 # 1: down to label76
# | .LBB12_5: # %bb1
# | end_block # label77:
# | .Ltmp66: # EH_LABEL
# | call bar
# | .Ltmp67: # EH_LABEL
# | .LBB12_6: # %bb2
# | # =>This Inner Loop Header: Depth=1
# | end_block # label76:
# | loop # label81:
# | .Ltmp68: # EH_LABEL
# | call foo
# | .Ltmp69: # EH_LABEL
# | br 0 # 0: up to label81
# | # %bb.7:
# | end_loop
# | end_try_table # label75:
# | unreachable
# | .LBB12_8: # %catch.start1
# | end_block # label74:
# | .Ltmp70: # EH_LABEL
# | drop
# | local.get 0
# | global.set __stack_pointer
# | # %bb.9: # %try.cont
# | return
# | unreachable
# | .LBB12_10:
# | end_block # label73:
# | local.set 1
# | local.get 1
# | throw_ref
# | end_function
# | .Lfunc_end12:
# | # -- End function
# | .section .text.unstackify_when_fixing_unwind_mismatch,"",@
# | .globl unstackify_when_fixing_unwind_mismatch # -- Begin function unstackify_when_fixing_unwind_mismatch
# | .type unstackify_when_fixing_unwind_mismatch, at function
# | unstackify_when_fixing_unwind_mismatch: # @unstackify_when_fixing_unwind_mismatch
# | .Lfunc_begin13:
# | .functype unstackify_when_fixing_unwind_mismatch (i32) -> ()
# | .local i32
# | # %bb.0: # %bb0
# | global.get __stack_pointer
# | local.set 1
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label83
# | .Ltmp71: # EH_LABEL
# | call foo
# | .Ltmp72: # EH_LABEL
# | br 2 # 2: down to label82
# | # %bb.1:
# | end_try_table # label84:
# | unreachable
# | .LBB13_2: # %catch.start0
# | end_block # label83:
# | .Ltmp73: # EH_LABEL
# | drop
# | local.get 1
# | global.set __stack_pointer
# | # %bb.3: # %try.cont
# | return
# | .LBB13_4: # %bb1
# | end_block # label82:
# | local.get 0
# | i32.const 4
# | i32.add
# | local.tee 0
# | local.get 0
# | i32.load 0
# | call baz
# | i32.add
# | i32.store 0
# | return
# | end_function
# | .Lfunc_end13:
# | # -- End function
# | .section .text.cfg_sort_order,"",@
# | .globl cfg_sort_order # -- Begin function cfg_sort_order
# | .type cfg_sort_order, at function
# | cfg_sort_order: # @cfg_sort_order
# | .Lfunc_begin14:
# | .functype cfg_sort_order (i32) -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | block
# | local.get 0
# | i32.eqz
# | br_if 0 # 0: down to label85
# | # %bb.1: # %if.then
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label87
# | .Ltmp74: # EH_LABEL
# | call foo
# | .Ltmp75: # EH_LABEL
# | br 2 # 2: down to label86
# | # %bb.2:
# | end_try_table # label88:
# | unreachable
# | .LBB14_3: # %catch.start
# | end_block # label87:
# | .Ltmp76: # EH_LABEL
# | local.set 0
# | local.get 1
# | global.set __stack_pointer
# | local.get 0
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label85
# | .LBB14_4: # %cont
# | end_block # label86:
# | call foo
# | .LBB14_5: # %if.end
# | end_block # label85:
# | return
# | end_function
# | .Lfunc_end14:
# | # -- End function
# | .section .text.mem_intrinsics,"",@
# | .globl mem_intrinsics # -- Begin function mem_intrinsics
# | .type mem_intrinsics, at function
# | mem_intrinsics: # @mem_intrinsics
# | .Lfunc_begin15:
# | .functype mem_intrinsics (i32, i32) -> ()
# | .local i32, exnref
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | i32.const 16
# | i32.sub
# | local.tee 2
# | global.set __stack_pointer
# | block
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label90
# | .Ltmp77: # EH_LABEL
# | call foo
# | .Ltmp78: # EH_LABEL
# | br 2 # 2: down to label89
# | # %bb.1:
# | end_try_table # label91:
# | unreachable
# | .LBB15_2: # %ehcleanup
# | end_block # label90:
# | .Ltmp79: # EH_LABEL
# | local.set 3
# | local.get 2
# | global.set __stack_pointer
# | local.get 2
# | i32.const 15
# | i32.add
# | call _ZN6ObjectD2Ev
# | drop
# | local.get 3
# | throw_ref
# | .LBB15_3: # %invoke.cont
# | end_block # label89:
# | local.get 0
# | local.get 1
# | i32.const 100
# | memory.copy 0, 0
# | local.get 0
# | local.get 1
# | i32.const 100
# | memory.copy 0, 0
# | local.get 0
# | i32.const 0
# | i32.const 100
# | memory.fill 0
# | local.get 2
# | i32.const 15
# | i32.add
# | call _ZN6ObjectD2Ev
# | drop
# | local.get 2
# | i32.const 16
# | i32.add
# | global.set __stack_pointer
# | return
# | end_function
# | .Lfunc_end15:
# | # -- End function
# | .section .text.try_table_marker_with_stackified_input,"",@
# | .globl try_table_marker_with_stackified_input # -- Begin function try_table_marker_with_stackified_input
# | .type try_table_marker_with_stackified_input, at function
# | try_table_marker_with_stackified_input: # @try_table_marker_with_stackified_input
# | .Lfunc_begin16:
# | .functype try_table_marker_with_stackified_input () -> ()
# | .local i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | .Ltmp80: # EH_LABEL
# | block
# | block
# | try_table (catch_all 0) # 0: down to label93
# | call nothrow_i32
# | call fun
# | .Ltmp81: # EH_LABEL
# | br 2 # 2: down to label92
# | # %bb.1:
# | end_try_table # label94:
# | unreachable
# | .LBB16_2: # %terminate
# | end_block # label93:
# | .Ltmp82: # EH_LABEL
# | local.get 0
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB16_3: # %invoke.cont
# | end_block # label92:
# | return
# | end_function
# | .Lfunc_end16:
# | # -- End function
# | .section .text.loop_exception_region,"",@
# | .globl loop_exception_region # -- Begin function loop_exception_region
# | .type loop_exception_region, at function
# | loop_exception_region: # @loop_exception_region
# | .Lfunc_begin17:
# | .functype loop_exception_region () -> ()
# | .local i32, i32, i32, exnref, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | i32.const 16
# | i32.sub
# | local.tee 0
# | global.set __stack_pointer
# | i32.const 0
# | local.set 1
# | .LBB17_1: # %for.cond
# | # =>This Inner Loop Header: Depth=1
# | loop # label95:
# | block
# | block
# | local.get 1
# | i32.const 8
# | i32.gt_s
# | br_if 0 # 0: down to label97
# | # %bb.2: # %for.body
# | # in Loop: Header=BB17_1 Depth=1
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label98
# | .Ltmp83: # EH_LABEL
# | local.get 1
# | call quux
# | .Ltmp84: # EH_LABEL
# | br 3 # 3: down to label96
# | # %bb.3:
# | end_try_table # label99:
# | unreachable
# | .LBB17_4: # %catch.start
# | # in Loop: Header=BB17_1 Depth=1
# | end_block # label98:
# | .Ltmp85: # EH_LABEL
# | local.set 3
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table17
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 2
# | call _Unwind_CallPersonality
# | drop
# | block
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label101
# | # %bb.5: # %catch
# | # in Loop: Header=BB17_1 Depth=1
# | local.get 0
# | i32.const 12
# | i32.add
# | local.get 2
# | call __cxa_get_exception_ptr
# | call _ZN7MyClassC2ERKS_
# | local.set 4
# | local.get 2
# | call __cxa_begin_catch
# | drop
# | .Ltmp86: # EH_LABEL
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label102
# | local.get 4
# | i32.load 0
# | call quux
# | .Ltmp87: # EH_LABEL
# | br 3 # 3: down to label100
# | # %bb.6:
# | end_try_table # label103:
# | unreachable
# | .LBB17_7: # %ehcleanup
# | end_block # label102:
# | .Ltmp88: # EH_LABEL
# | local.set 3
# | local.get 0
# | global.set __stack_pointer
# | local.get 4
# | call _ZN7MyClassD2Ev
# | drop
# | block
# | block
# | try_table (catch_all 0) # 0: down to label105
# | .Ltmp89: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp90: # EH_LABEL
# | br 2 # 2: down to label104
# | # %bb.8:
# | end_try_table # label106:
# | unreachable
# | .LBB17_9: # %terminate7
# | end_block # label105:
# | .Ltmp91: # EH_LABEL
# | local.get 0
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB17_10: # %invoke.cont6
# | end_block # label104:
# | local.get 3
# | throw_ref
# | .LBB17_11: # %rethrow
# | end_block # label101:
# | local.get 3
# | throw_ref
# | .LBB17_12: # %invoke.cont2
# | # in Loop: Header=BB17_1 Depth=1
# | end_block # label100:
# | local.get 4
# | call _ZN7MyClassD2Ev
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label96
# | .LBB17_13: # %for.end
# | end_block # label97:
# | local.get 0
# | i32.const 16
# | i32.add
# | global.set __stack_pointer
# | return
# | .LBB17_14: # %for.inc
# | # in Loop: Header=BB17_1 Depth=1
# | end_block # label96:
# | local.get 1
# | i32.const 1
# | i32.add
# | local.set 1
# | br 0 # 0: up to label95
# | .LBB17_15:
# | end_loop
# | end_function
# | .Lfunc_end17:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table17:
# | .Lexception2:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase2-.Lttbaseref2
# | .Lttbaseref2:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end2-.Lcst_begin2
# | .Lcst_begin2:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .Lcst_end2:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTI7MyClass # TypeInfo 1
# | .Lttbase2:
# | .p2align 2, 0x0
# | .LGCC_except_table_end2:
# | .size GCC_except_table17, .LGCC_except_table_end2-GCC_except_table17
# | # -- End function
# | .section .text.loop_contains_exception,"",@
# | .globl loop_contains_exception # -- Begin function loop_contains_exception
# | .type loop_contains_exception, at function
# | loop_contains_exception: # @loop_contains_exception
# | .Lfunc_begin18:
# | .functype loop_contains_exception (i32) -> ()
# | .local i32, i32
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 1
# | .LBB18_1: # %while.cond
# | # =>This Inner Loop Header: Depth=1
# | block
# | loop # label108:
# | local.get 0
# | i32.eqz
# | br_if 1 # 1: down to label107
# | # %bb.2: # %while.body
# | # in Loop: Header=BB18_1 Depth=1
# | .Ltmp92: # EH_LABEL
# | local.get 0
# | i32.const -1
# | i32.add
# | local.set 0
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label109
# | call foo
# | .Ltmp93: # EH_LABEL
# | br 3 # 3: down to label107
# | # %bb.3:
# | end_try_table # label110:
# | unreachable
# | .LBB18_4: # %catch.start
# | # in Loop: Header=BB18_1 Depth=1
# | end_block # label109:
# | .Ltmp94: # EH_LABEL
# | local.set 2
# | local.get 1
# | global.set __stack_pointer
# | local.get 2
# | call __cxa_begin_catch
# | drop
# | block
# | block
# | try_table (catch_all 0) # 0: down to label112
# | .Ltmp95: # EH_LABEL
# | call __cxa_end_catch
# | .Ltmp96: # EH_LABEL
# | br 2 # 2: down to label111
# | # %bb.5:
# | end_try_table # label113:
# | unreachable
# | .LBB18_6: # %ehcleanup
# | end_block # label112:
# | .Ltmp97: # EH_LABEL
# | local.get 1
# | global.set __stack_pointer
# | call _ZSt9terminatev
# | unreachable
# | .LBB18_7: # %invoke.cont
# | # in Loop: Header=BB18_1 Depth=1
# | end_block # label111:
# | br 0 # 0: up to label108
# | .LBB18_8: # %while.end
# | end_loop
# | end_block # label107:
# | return
# | end_function
# | .Lfunc_end18:
# | # -- End function
# | .section .text.wasm_eh_func_info_regression_test,"",@
# | .globl wasm_eh_func_info_regression_test # -- Begin function wasm_eh_func_info_regression_test
# | .type wasm_eh_func_info_regression_test, at function
# | wasm_eh_func_info_regression_test: # @wasm_eh_func_info_regression_test
# | .Lfunc_begin19:
# | .functype wasm_eh_func_info_regression_test () -> ()
# | .local i32, i32, exnref
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | local.set 0
# | block
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label115
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label117
# | .Ltmp98: # EH_LABEL
# | call foo
# | .Ltmp99: # EH_LABEL
# | br 4 # 4: down to label114
# | # %bb.1:
# | end_try_table # label118:
# | unreachable
# | .LBB19_2: # %catch.start
# | end_block # label117:
# | .Ltmp100: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table19
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | .Ltmp101: # EH_LABEL
# | block exnref
# | try_table (catch_all_ref 0) # 0: down to label119
# | block
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label122
# | i32.const 0
# | i32.const 0
# | i32.const 0
# | call __cxa_throw
# | .Ltmp102: # EH_LABEL
# | br 2 # 2: down to label121
# | # %bb.3:
# | end_try_table # label123:
# | unreachable
# | .LBB19_4: # %catch.start3
# | end_block # label122:
# | .Ltmp103: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table19
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | # %bb.5: # %try.cont
# | .Ltmp104: # EH_LABEL
# | call foo
# | .Ltmp105: # EH_LABEL
# | # %bb.6: # %invoke.cont8
# | .Ltmp106: # EH_LABEL
# | block i32
# | try_table (catch __cpp_exception 0) # 0: down to label124
# | i32.const 0
# | i32.const 0
# | i32.const 0
# | call __cxa_throw
# | .Ltmp107: # EH_LABEL
# | br 2 # 2: down to label121
# | # %bb.7:
# | end_try_table # label125:
# | unreachable
# | .LBB19_8: # %catch.start12
# | end_block # label124:
# | .Ltmp108: # EH_LABEL
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table19
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 2
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | unreachable
# | .LBB19_9: # %unreachable
# | end_block # label121:
# | unreachable
# | # %bb.10:
# | end_try_table # label120:
# | unreachable
# | .LBB19_11: # %ehcleanup
# | end_block # label119:
# | .Ltmp109: # EH_LABEL
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | local.get 2
# | throw_ref
# | # %bb.12:
# | end_try_table # label116:
# | unreachable
# | .LBB19_13: # %ehcleanup22
# | end_block # label115:
# | .Ltmp110: # EH_LABEL
# | local.set 2
# | local.get 0
# | global.set __stack_pointer
# | local.get 2
# | throw_ref
# | .LBB19_14: # %invoke.cont
# | end_block # label114:
# | unreachable
# | end_function
# | .Lfunc_end19:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table19:
# | .Lexception3:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase3-.Lttbaseref3
# | .Lttbaseref3:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end3-.Lcst_begin3
# | .Lcst_begin3:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .int8 2 # >> Call Site 2 <<
# | # On exception at call site 2
# | .int8 1 # Action: 1
# | .Lcst_end3:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase3:
# | .p2align 2, 0x0
# | .LGCC_except_table_end3:
# | .size GCC_except_table19, .LGCC_except_table_end3-GCC_except_table19
# | # -- End function
# | .section .text.exception_grouping_0,"",@
# | .globl exception_grouping_0 # -- Begin function exception_grouping_0
# | .type exception_grouping_0, at function
# | exception_grouping_0: # @exception_grouping_0
# | .Lfunc_begin20:
# | .functype exception_grouping_0 () -> ()
# | .local i32, i32, exnref, exnref
# | # %bb.0: # %entry
# | block exnref
# | global.get __stack_pointer
# | local.set 0
# | i32.const 4
# | call __cxa_allocate_exception
# | local.tee 1
# | i32.const 0
# | i32.store 0
# | .Ltmp111: # EH_LABEL
# | block
# | block
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label129
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label131
# | local.get 1
# | i32.const _ZTIi
# | i32.const 0
# | call __cxa_throw
# | .Ltmp112: # EH_LABEL
# | br 5 # 5: down to label127
# | # %bb.1:
# | end_try_table # label132:
# | unreachable
# | .LBB20_2: # %catch.start
# | end_block # label131:
# | .Ltmp113: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table20
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label133
# | # %bb.3: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try_table (catch_all_ref 5) # 5: down to label126
# | call __cxa_end_catch
# | # %bb.4:
# | end_try_table # label134:
# | .LBB20_5:
# | br 3 # 3: down to label128
# | .LBB20_6: # %rethrow
# | end_block # label133:
# | local.get 2
# | throw_ref
# | # %bb.7:
# | end_try_table # label130:
# | unreachable
# | .LBB20_8: # %catch.start2
# | end_block # label129:
# | .Ltmp114: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table20
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label135
# | # %bb.9: # %catch5
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label128
# | .LBB20_10: # %rethrow4
# | end_block # label135:
# | local.get 2
# | throw_ref
# | .LBB20_11: # %try.cont8
# | end_block # label128:
# | return
# | .LBB20_12: # %unreachable.for.entry
# | end_block # label127:
# | unreachable
# | unreachable
# | .LBB20_13:
# | end_block # label126:
# | local.set 3
# | local.get 3
# | throw_ref
# | end_function
# | .Lfunc_end20:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table20:
# | .Lexception4:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase4-.Lttbaseref4
# | .Lttbaseref4:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end4-.Lcst_begin4
# | .Lcst_begin4:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .Lcst_end4:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase4:
# | .p2align 2, 0x0
# | .LGCC_except_table_end4:
# | .size GCC_except_table20, .LGCC_except_table_end4-GCC_except_table20
# | # -- End function
# | .section .text.exception_grouping_1,"",@
# | .globl exception_grouping_1 # -- Begin function exception_grouping_1
# | .type exception_grouping_1, at function
# | exception_grouping_1: # @exception_grouping_1
# | .Lfunc_begin21:
# | .functype exception_grouping_1 () -> ()
# | .local i32, i32, exnref, exnref
# | # %bb.0: # %entry
# | block exnref
# | global.get __stack_pointer
# | local.set 0
# | block
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label138
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label140
# | block () -> (i32, exnref)
# | try_table (catch_ref __cpp_exception 0) # 0: down to label142
# | .Ltmp115: # EH_LABEL
# | call foo
# | .Ltmp116: # EH_LABEL
# | # %bb.1: # %invoke.cont
# | .Ltmp117: # EH_LABEL
# | call foo
# | .Ltmp118: # EH_LABEL
# | # %bb.2: # %invoke.cont1
# | .Ltmp119: # EH_LABEL
# | call foo
# | .Ltmp120: # EH_LABEL
# | br 6 # 6: down to label137
# | # %bb.3:
# | end_try_table # label143:
# | unreachable
# | .LBB21_4: # %catch.start
# | end_block # label142:
# | .Ltmp121: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table21
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 2
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label144
# | # %bb.5: # %catch
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try_table (catch_all_ref 6) # 6: down to label136
# | call __cxa_end_catch
# | # %bb.6:
# | end_try_table # label145:
# | .LBB21_7:
# | br 5 # 5: down to label137
# | .LBB21_8: # %rethrow
# | end_block # label144:
# | local.get 2
# | throw_ref
# | # %bb.9:
# | end_try_table # label141:
# | unreachable
# | .LBB21_10: # %catch.start4
# | end_block # label140:
# | .Ltmp122: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table21
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 1
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label146
# | # %bb.11: # %catch7
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | try_table (catch_all_ref 4) # 4: down to label136
# | call __cxa_end_catch
# | # %bb.12:
# | end_try_table # label147:
# | .LBB21_13:
# | br 3 # 3: down to label137
# | .LBB21_14: # %rethrow6
# | end_block # label146:
# | local.get 2
# | throw_ref
# | # %bb.15:
# | end_try_table # label139:
# | unreachable
# | .LBB21_16: # %catch.start12
# | end_block # label138:
# | .Ltmp123: # EH_LABEL
# | local.set 2
# | local.set 1
# | local.get 0
# | global.set __stack_pointer
# | i32.const 4
# | i32.const GCC_except_table21
# | i32.store __wasm_lpad_context
# | i32.const 0
# | i32.const 0
# | i32.store __wasm_lpad_context
# | local.get 1
# | call _Unwind_CallPersonality
# | drop
# | block
# | i32.const 8
# | i32.load __wasm_lpad_context
# | i32.const 1
# | i32.ne
# | br_if 0 # 0: down to label148
# | # %bb.17: # %catch15
# | local.get 1
# | call __cxa_begin_catch
# | drop
# | call __cxa_end_catch
# | br 1 # 1: down to label137
# | .LBB21_18: # %rethrow14
# | end_block # label148:
# | local.get 2
# | throw_ref
# | .LBB21_19: # %try.cont18
# | end_block # label137:
# | return
# | unreachable
# | .LBB21_20:
# | end_block # label136:
# | local.set 3
# | local.get 3
# | throw_ref
# | end_function
# | .Lfunc_end21:
# | .section .rodata.gcc_except_table,"",@
# | .p2align 2, 0x0
# | GCC_except_table21:
# | .Lexception5:
# | .int8 255 # @LPStart Encoding = omit
# | .int8 0 # @TType Encoding = absptr
# | .uleb128 .Lttbase5-.Lttbaseref5
# | .Lttbaseref5:
# | .int8 1 # Call site Encoding = uleb128
# | .uleb128 .Lcst_end5-.Lcst_begin5
# | .Lcst_begin5:
# | .int8 0 # >> Call Site 0 <<
# | # On exception at call site 0
# | .int8 1 # Action: 1
# | .int8 1 # >> Call Site 1 <<
# | # On exception at call site 1
# | .int8 1 # Action: 1
# | .int8 2 # >> Call Site 2 <<
# | # On exception at call site 2
# | .int8 1 # Action: 1
# | .Lcst_end5:
# | .int8 1 # >> Action Record 1 <<
# | # Catch TypeInfo 1
# | .int8 0 # No further actions
# | .p2align 2, 0x0
# | # >> Catch TypeInfos <<
# | .int32 _ZTIi # TypeInfo 1
# | .Lttbase5:
# | .p2align 2, 0x0
# | .LGCC_except_table_end5:
# | .size GCC_except_table21, .LGCC_except_table_end5-GCC_except_table21
# | # -- End function
# | .section .text.exception_grouping_2,"",@
# | .globl exception_grouping_2 # -- Begin function exception_grouping_2
# | .type exception_grouping_2, at function
# | exception_grouping_2: # @exception_grouping_2
# | .functype exception_grouping_2 () -> ()
# | # %bb.0: # %entry
# | global.get __stack_pointer
# | drop
# | i32.const 4
# | call __cxa_allocate_exception
# | drop
# | unreachable
# | end_function
# | # -- End function
# | .no_dead_strip __indirect_function_table
# | .size _ZTIi, 4
# | .size _ZTId, 4
# | .size _ZTI7MyClass, 8
# | .size __wasm_lpad_context, 12
# | .section .custom_section.target_features,"",@
# | .int8 10
# | .int8 43
# | .int8 11
# | .ascii "bulk-memory"
# | .int8 43
# | .int8 15
# | .ascii "bulk-memory-opt"
# | .int8 43
# | .int8 22
# | .ascii "call-indirect-overlong"
# | .int8 43
# | .int8 18
# | .ascii "exception-handling"
# | .int8 43
# | .int8 10
# | .ascii "multivalue"
# | .int8 43
# | .int8 15
# | .ascii "mutable-globals"
# | .int8 43
# | .int8 19
# | .ascii "nontrapping-fptoint"
# | .int8 43
# | .int8 15
# | .ascii "reference-types"
# | .int8 43
# | .int8 8
# | .ascii "sign-ext"
# | .int8 45
# | .int8 10
# | .ascii "shared-mem"
# | .section .text.exception_grouping_2,"",@
# `-----------------------------
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll -O0 -disable-wasm-fallthrough-return-opt -verify-machineinstrs -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll --check-prefix=NOOPT
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -O0 -disable-wasm-fallthrough-return-opt -verify-machineinstrs -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll --check-prefix=NOOPT
# note: command had no output on stdout or stderr
# RUN: at line 5
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt -wasm-disable-ehpad-sort -stats 2>&1 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll --check-prefix=NOSORT
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -disable-wasm-fallthrough-return-opt -disable-block-placement -verify-machineinstrs -fast-isel=false -machine-sink-split-probability-threshold=0 -cgp-freq-ratio-to-skip-merge=1000 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm -mattr=+exception-handling,-bulk-memory,-bulk-memory-opt -wasm-disable-ehpad-sort -stats
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll --check-prefix=NOSORT
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll:1510:11: error: NOSORT: expected string not found in input
# | ; NOSORT: 23 wasm-cfg-stackify - Number of call unwind mismatches found
# | ^
# | <stdin>:1484:10: note: scanning from here
# | end_loop
# | ^
# | <stdin>:1627:2: note: possible intended match here
# | # On exception at call site 0
# | ^
# |
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 1479: local.get 1
# | 1480: global.set __stack_pointer
# | 1481: call _ZSt9terminatev
# | 1482: unreachable
# | 1483: .LBB18_9:
# | 1484: end_loop
# | check:1510'0 X error: no match found
# | 1485: end_function
# | check:1510'0 ~~~~~~~~~~~~~~
# | 1486: .Lfunc_end18:
# | check:1510'0 ~~~~~~~~~~~~~~
# | 1487: # -- End function
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~
# | 1488: .section .text.wasm_eh_func_info_regression_test,"",@
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1489: .globl wasm_eh_func_info_regression_test # -- Begin function wasm_eh_func_info_regression_test
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | 1622: .Lttbaseref3:
# | check:1510'0 ~~~~~~~~~~~~~~
# | 1623: .int8 1 # Call site Encoding = uleb128
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1624: .uleb128 .Lcst_end3-.Lcst_begin3
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1625: .Lcst_begin3:
# | check:1510'0 ~~~~~~~~~~~~~~
# | 1626: .int8 0 # >> Call Site 0 <<
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1627: # On exception at call site 0
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:1510'1 ? possible intended match
# | 1628: .int8 1 # Action: 1
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~
# | 1629: .int8 1 # >> Call Site 1 <<
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1630: # On exception at call site 1
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 1631: .int8 1 # Action: 1
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~
# | 1632: .int8 2 # >> Call Site 2 <<
# | check:1510'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/187484
More information about the llvm-commits
mailing list