Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>,
Lukas =?utf-8?q?Döllerer?= <[email protected]>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/[email protected]>


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 166441 tests passed
* 2875 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.CodeGen/WebAssembly/exception.ll</summary>

```
Exit Code: -6

Command Output (stdout):
--
# RUN: at line 1
/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/exception.ll
 -asm-verbose=false -wasm-enable-eh -wasm-use-legacy-eh=false 
-exception-model=wasm -mattr=+exception-handling -verify-machineinstrs | 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck 
--implicit-check-not=ehgcr -allow-deprecated-dag-overlap 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/exception.ll
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-asm-verbose=false -wasm-enable-eh -wasm-use-legacy-eh=false 
-exception-model=wasm -mattr=+exception-handling -verify-machineinstrs
# note: command had no output on stdout or stderr
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck 
--implicit-check-not=ehgcr -allow-deprecated-dag-overlap 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/exception.ll
# note: command had no output on stdout or stderr
# 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/exception.ll
 -asm-verbose=false -wasm-enable-eh -wasm-use-legacy-eh=false 
-exception-model=wasm -mattr=+exception-handling -verify-machineinstrs -O0
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-asm-verbose=false -wasm-enable-eh -wasm-use-legacy-eh=false 
-exception-model=wasm -mattr=+exception-handling -verify-machineinstrs -O0
# .---command stdout------------
# |     .file   "<stdin>"
# |     .globaltype     __stack_pointer, i32
# |     .tagtype        __cpp_exception i32
# |     .functype       throw (i32) -> ()
# |     .functype       catch () -> ()
# |     .functype       cleanup () -> ()
# |     .functype       terminatepad () -> ()
# |     .functype       no_prolog_epilog_in_ehpad () -> ()
# |     .functype       no_sp_writeback () -> ()
# |     .functype       get_exception_wo_use () -> ()
# |     .functype       complex_cleanup_region () -> ()
# |     .functype       rethrow_terminator () -> ()
# |     .functype       inlined_cleanupret () -> ()
# |     .functype       invoke_throw (i32) -> ()
# |     .functype       unwind_destinations () -> ()
# |     .functype       foo () -> ()
# |     .functype       bar (i32) -> ()
# |     .functype       take_i32 (i32) -> ()
# |     .functype       __gxx_wasm_personality_v0 (i32) -> (i32)
# |     .functype       __cxa_allocate_exception (i32) -> (i32)
# |     .functype       __cxa_begin_catch (i32) -> (i32)
# |     .functype       __cxa_end_catch () -> ()
# |     .functype       __cxa_throw (i32, i32, i32) -> ()
# |     .functype       _ZSt9terminatev () -> ()
# |     .functype       _ZN4TempD2Ev (i32) -> (i32)
# |     .functype       _Unwind_CallPersonality (i32) -> (i32)
# |     .section        .text.throw,"",@
# |     .globl  throw
# |     .type   throw,@function
# | throw:
# |     .functype       throw (i32) -> ()
# |     local.get       0
# |     throw           __cpp_exception
# |     end_function
# | 
# |     .section        .text.catch,"",@
# |     .globl  catch
# |     .type   catch,@function
# | catch:
# | .Lfunc_begin0:
# |     .functype       catch () -> ()
# |     .local          i32, i32, exnref, i32, i32
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           () -> (i32, exnref)
# |     try_table        (catch_ref __cpp_exception 0)
# | .Ltmp0:
# |     call    foo
# | .Ltmp1:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB1_2:
# |     end_block
# | .Ltmp2:
# |     local.set       2
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       0
# |     local.set       3
# |     i32.const       0
# |     local.get       3
# |     i32.store       __wasm_lpad_context
# |     i32.const       GCC_except_table1
# |     local.set       4
# |     i32.const       0
# |     local.get       4
# |     i32.store       __wasm_lpad_context+4
# |     local.get       1
# |     call    _Unwind_CallPersonality
# |     drop
# |     block           
# |     i32.const       0
# |     i32.load        __wasm_lpad_context+8
# |     i32.const       1
# |     i32.eq  
# |     i32.const       1
# |     i32.and 
# |     i32.eqz
# |     br_if           0
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     call    __cxa_end_catch
# |     br              1
# | .LBB1_4:
# |     end_block
# |     local.get       2
# |     throw_ref
# | .LBB1_5:
# |     end_block
# |     return
# |     end_function
# | .Lfunc_end0:
# |     .section        .rodata.gcc_except_table,"",@
# |     .p2align        2, 0x0
# | GCC_except_table1:
# | .Lexception0:
# |     .int8   255
# |     .int8   0
# |     .uleb128 .Lttbase0-.Lttbaseref0
# | .Lttbaseref0:
# |     .int8   1
# |     .uleb128 .Lcst_end0-.Lcst_begin0
# | .Lcst_begin0:
# |     .int8   0
# |     .int8   1
# | .Lcst_end0:
# |     .int8   1
# |     .int8   0
# |     .p2align        2, 0x0
# |     .int32  _ZTIi
# | .Lttbase0:
# |     .p2align        2, 0x0
# | .LGCC_except_table_end0:
# |     .size   GCC_except_table1, .LGCC_except_table_end0-GCC_except_table1
# | 
# |     .section        .text.cleanup,"",@
# |     .globl  cleanup
# |     .type   cleanup,@function
# | cleanup:
# | .Lfunc_begin1:
# |     .functype       cleanup () -> ()
# |     .local          i32, exnref
# |     global.get      __stack_pointer
# |     i32.const       16
# |     i32.sub 
# |     local.set       0
# |     local.get       0
# |     global.set      __stack_pointer
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)
# | .Ltmp3:
# |     call    foo
# | .Ltmp4:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB2_2:
# |     end_block
# | .Ltmp5:
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.const       15
# |     i32.add 
# |     call    _ZN4TempD2Ev
# |     drop
# |     local.get       1
# |     throw_ref
# | .LBB2_3:
# |     end_block
# |     local.get       0
# |     i32.const       15
# |     i32.add 
# |     call    _ZN4TempD2Ev
# |     drop
# |     local.get       0
# |     i32.const       16
# |     i32.add 
# |     global.set      __stack_pointer
# |     return
# |     end_function
# | .Lfunc_end1:
# | 
# |     .section        .text.terminatepad,"",@
# |     .globl  terminatepad
# |     .type   terminatepad,@function
# | terminatepad:
# | .Lfunc_begin2:
# |     .functype       terminatepad () -> ()
# |     .local          i32, i32, exnref
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# | .Ltmp6:
# |     call    foo
# | .Ltmp7:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB3_2:
# |     end_block
# | .Ltmp8:
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)
# | .Ltmp9:
# |     call    foo
# | .Ltmp10:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB3_4:
# |     end_block
# | .Ltmp11:
# | .Ltmp12:
# |     local.set       2
# |     local.get       0
# |     global.set      __stack_pointer
# |     block           
# |     block           
# |     try_table        (catch_all 0)
# |     call    __cxa_end_catch
# | .Ltmp13:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB3_6:
# |     end_block
# | .Ltmp14:
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    _ZSt9terminatev
# |     unreachable
# | .LBB3_7:
# |     end_block
# |     local.get       2
# |     throw_ref
# | .LBB3_8:
# |     end_block
# |     call    __cxa_end_catch
# | .LBB3_9:
# |     end_block
# |     return
# |     end_function
# | .Lfunc_end2:
# | 
# |     .section        .text.no_prolog_epilog_in_ehpad,"",@
# |     .globl  no_prolog_epilog_in_ehpad
# |     .type   no_prolog_epilog_in_ehpad,@function
# | no_prolog_epilog_in_ehpad:
# | .Lfunc_begin3:
# |     .functype       no_prolog_epilog_in_ehpad () -> ()
# |     .local          i32, i32, exnref, i32, i32, exnref
# |     global.get      __stack_pointer
# |     i32.const       16
# |     i32.sub 
# |     local.set       0
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.const       12
# |     i32.add 
# |     call    bar
# |     block           
# |     block           () -> (i32, exnref)
# |     try_table        (catch_ref __cpp_exception 0)
# | .Ltmp15:
# |     call    foo
# | .Ltmp16:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB4_2:
# |     end_block
# | .Ltmp17:
# |     local.set       2
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       0
# |     local.set       3
# |     i32.const       0
# |     local.get       3
# |     i32.store       __wasm_lpad_context
# |     i32.const       GCC_except_table4
# |     local.set       4
# |     i32.const       0
# |     local.get       4
# |     i32.store       __wasm_lpad_context+4
# |     local.get       1
# |     call    _Unwind_CallPersonality
# |     drop
# |     block           
# |     block           
# |     i32.const       0
# |     i32.load        __wasm_lpad_context+8
# |     i32.const       1
# |     i32.eq  
# |     i32.const       1
# |     i32.and 
# |     i32.eqz
# |     br_if           0
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     block           exnref
# |     try_table        (catch_all_ref 0)
# | .Ltmp18:
# |     call    foo
# | .Ltmp19:
# |     br              3
# |     end_try_table
# |     unreachable
# | .LBB4_5:
# |     end_block
# | .Ltmp20:
# |     local.set       5
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    __cxa_end_catch
# |     local.get       5
# |     throw_ref
# | .LBB4_6:
# |     end_block
# |     local.get       2
# |     throw_ref
# | .LBB4_7:
# |     end_block
# |     call    __cxa_end_catch
# | .LBB4_8:
# |     end_block
# |     local.get       0
# |     i32.const       16
# |     i32.add 
# |     global.set      __stack_pointer
# |     return
# |     end_function
# | .Lfunc_end3:
# |     .section        .rodata.gcc_except_table,"",@
# |     .p2align        2, 0x0
# | GCC_except_table4:
# | .Lexception1:
# |     .int8   255
# |     .int8   0
# |     .uleb128 .Lttbase1-.Lttbaseref1
# | .Lttbaseref1:
# |     .int8   1
# |     .uleb128 .Lcst_end1-.Lcst_begin1
# | .Lcst_begin1:
# |     .int8   0
# |     .int8   1
# | .Lcst_end1:
# |     .int8   1
# |     .int8   0
# |     .p2align        2, 0x0
# |     .int32  _ZTIi
# | .Lttbase1:
# |     .p2align        2, 0x0
# | .LGCC_except_table_end1:
# |     .size   GCC_except_table4, .LGCC_except_table_end1-GCC_except_table4
# | 
# |     .section        .text.no_sp_writeback,"",@
# |     .globl  no_sp_writeback
# |     .type   no_sp_writeback,@function
# | no_sp_writeback:
# | .Lfunc_begin4:
# |     .functype       no_sp_writeback () -> ()
# |     .local          i32, i32
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# | .Ltmp21:
# |     call    foo
# | .Ltmp22:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB5_2:
# |     end_block
# | .Ltmp23:
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     call    __cxa_end_catch
# | .LBB5_3:
# |     end_block
# |     return
# |     end_function
# | .Lfunc_end4:
# | 
# |     .section        .text.get_exception_wo_use,"",@
# |     .globl  get_exception_wo_use
# |     .type   get_exception_wo_use,@function
# | get_exception_wo_use:
# | .Lfunc_begin5:
# |     .functype       get_exception_wo_use () -> ()
# |     .local          i32
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# | .Ltmp24:
# |     call    foo
# | .Ltmp25:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB6_2:
# |     end_block
# | .Ltmp26:
# |     drop
# |     local.get       0
# |     global.set      __stack_pointer
# | .LBB6_3:
# |     end_block
# |     return
# |     end_function
# | .Lfunc_end5:
# | 
# |     .section        .text.complex_cleanup_region,"",@
# |     .globl  complex_cleanup_region
# |     .type   complex_cleanup_region,@function
# | complex_cleanup_region:
# | .Lfunc_begin6:
# |     .functype       complex_cleanup_region () -> ()
# |     .local          i32, exnref
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)
# | .Ltmp27:
# |     call    foo
# | .Ltmp28:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB7_2:
# |     end_block
# | .Ltmp29:
# | .Ltmp30:
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     block           
# |     block           
# |     try_table        (catch_all 0)
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# |     call    foo
# | .Ltmp31:
# |     br              4
# |     end_try_table
# |     unreachable
# | .LBB7_4:
# |     end_block
# | .Ltmp32:
# |     drop
# |     local.get       0
# |     global.set      __stack_pointer
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB7_6:
# |     end_block
# | .Ltmp33:
# |     local.get       0
# |     global.set      __stack_pointer
# |     unreachable
# | .LBB7_7:
# |     end_block
# |     local.get       1
# |     throw_ref
# | .LBB7_8:
# |     end_block
# |     return
# |     end_function
# | .Lfunc_end6:
# | 
# |     .section        .text.rethrow_terminator,"",@
# |     .globl  rethrow_terminator
# |     .type   rethrow_terminator,@function
# | rethrow_terminator:
# | .Lfunc_begin7:
# |     .functype       rethrow_terminator () -> ()
# |     .local          i32, i32, exnref, i32, i32, exnref, exnref
# |     block           exnref
# |     global.get      __stack_pointer
# |     i32.const       16
# |     i32.sub 
# |     local.set       0
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.const       10
# |     i32.store       12
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)
# |     block           () -> (i32, exnref)
# |     try_table        (catch_ref __cpp_exception 0)
# | .Ltmp34:
# |     call    foo
# | .Ltmp35:
# |     br              4
# |     end_try_table
# |     unreachable
# | .LBB8_2:
# |     end_block
# | .Ltmp36:
# |     local.set       2
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       0
# |     local.set       3
# |     i32.const       0
# |     local.get       3
# |     i32.store       __wasm_lpad_context
# |     i32.const       GCC_except_table8
# |     local.set       4
# |     i32.const       0
# |     local.get       4
# |     i32.store       __wasm_lpad_context+4
# |     local.get       1
# |     call    _Unwind_CallPersonality
# |     drop
# |     block           
# |     i32.const       0
# |     i32.load        __wasm_lpad_context+8
# |     i32.const       1
# |     i32.eq  
# |     i32.const       1
# |     i32.and 
# |     i32.eqz
# |     br_if           0
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     try_table        (catch_all_ref 4)
# |     call    __cxa_end_catch
# |     end_try_table
# | .LBB8_5:
# |     br              3
# | .LBB8_6:
# |     end_block
# |     local.get       0
# |     i32.const       20
# |     i32.store       12
# |     local.get       2
# |     throw_ref
# |     end_try_table
# |     unreachable
# | .LBB8_8:
# |     end_block
# | .Ltmp37:
# |     local.set       5
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.load        12
# |     call    take_i32
# |     local.get       5
# |     throw_ref
# | .LBB8_9:
# |     end_block
# |     local.get       0
# |     i32.const       16
# |     i32.add 
# |     global.set      __stack_pointer
# |     return
# |     unreachable
# | .LBB8_10:
# |     end_block
# |     local.set       6
# |     local.get       6
# |     throw_ref
# |     end_function
# | .Lfunc_end7:
# |     .section        .rodata.gcc_except_table,"",@
# |     .p2align        2, 0x0
# | GCC_except_table8:
# | .Lexception2:
# |     .int8   255
# |     .int8   0
# |     .uleb128 .Lttbase2-.Lttbaseref2
# | .Lttbaseref2:
# |     .int8   1
# |     .uleb128 .Lcst_end2-.Lcst_begin2
# | .Lcst_begin2:
# |     .int8   0
# |     .int8   1
# | .Lcst_end2:
# |     .int8   1
# |     .int8   0
# |     .p2align        2, 0x0
# |     .int32  _ZTIi
# | .Lttbase2:
# |     .p2align        2, 0x0
# | .LGCC_except_table_end2:
# |     .size   GCC_except_table8, .LGCC_except_table_end2-GCC_except_table8
# | 
# |     .section        .text.inlined_cleanupret,"",@
# |     .globl  inlined_cleanupret
# |     .type   inlined_cleanupret,@function
# | inlined_cleanupret:
# | .Lfunc_begin8:
# |     .functype       inlined_cleanupret () -> ()
# |     .local          i32, i32, exnref, i32, i32, i32, exnref
# |     block           exnref
# |     global.get      __stack_pointer
# |     local.set       0
# |     i32.const       4
# |     call    __cxa_allocate_exception
# |     local.set       1
# |     local.get       1
# |     i32.const       2
# |     i32.store       0
# | .Ltmp38:
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)
# |     local.get       1
# |     i32.const       _ZTIi
# |     i32.const       0
# |     call    __cxa_throw
# | .Ltmp39:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB9_2:
# |     end_block
# | .Ltmp40:
# |     local.set       2
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       4
# |     call    __cxa_allocate_exception
# |     local.set       3
# |     local.get       3
# |     i32.const       1
# |     i32.store       0
# | .Ltmp41:
# |     block           
# |     try_table        (catch_all 0)
# |     block           
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# |     local.get       3
# |     i32.const       _ZTIi
# |     i32.const       0
# |     call    __cxa_throw
# | .Ltmp42:
# |     br              2
# |     end_try_table
# |     unreachable
# | .LBB9_4:
# |     end_block
# | .Ltmp43:
# |     local.set       4
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       4
# |     call    __cxa_begin_catch
# |     drop
# | .Ltmp44:
# |     call    __cxa_end_catch
# | .Ltmp45:
# |     block           i32
# |     try_table        (catch_all_ref 5)
# |     try_table        (catch __cpp_exception 1)
# |     local.get       2
# |     throw_ref
# |     end_try_table
# |     end_try_table
# | .LBB9_9:
# |     unreachable
# | .LBB9_10:
# |     end_block
# | .Ltmp46:
# |     local.set       5
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       5
# |     call    __cxa_begin_catch
# |     drop
# |     try_table        (catch_all_ref 4)
# |     call    __cxa_end_catch
# |     end_try_table
# | .LBB9_12:
# |     return
# | .LBB9_13:
# |     end_block
# |     unreachable
# |     end_try_table
# |     unreachable
# | .LBB9_15:
# |     end_block
# | .Ltmp47:
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    _ZSt9terminatev
# |     unreachable
# | .LBB9_16:
# |     end_block
# |     unreachable
# |     unreachable
# | .LBB9_17:
# |     end_block
# |     local.set       6
# |     local.get       6
# |     throw_ref
# |     end_function
# | .Lfunc_end8:
# | 
# |     .section        .text.invoke_throw,"",@
# |     .globl  invoke_throw
# |     .type   invoke_throw,@function
# | invoke_throw:
# | .Lfunc_begin9:
# |     .functype       invoke_throw (i32) -> ()
# |     .local          i32, i32
# |     global.get      __stack_pointer
# |     local.set       1
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# |     local.get       0
# |     throw           __cpp_exception
# |     end_try_table
# |     unreachable
# | .LBB10_2:
# |     end_block
# | .Ltmp48:
# |     local.set       2
# |     local.get       1
# |     global.set      __stack_pointer
# |     local.get       2
# |     call    __cxa_begin_catch
# |     drop
# |     call    __cxa_end_catch
# |     return
# |     end_function
# | .Lfunc_end9:
# | 
# |     .section        .text.unwind_destinations,"",@
# |     .globl  unwind_destinations
# |     .type   unwind_destinations,@function
# | unwind_destinations:
# | .Lfunc_begin10:
# |     .functype       unwind_destinations () -> ()
# |     .local          i32, i32
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           
# |     try_table        (catch_all 0)
# |     block           i32
# |     try_table        (catch __cpp_exception 0)
# | .Ltmp49:
# |     call    foo
# | .Ltmp50:
# |     br              4
# |     end_try_table
# |     unreachable
# | .LBB11_2:
# |     end_block
# | .Ltmp51:
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     call    _ZSt9terminatev
# |     unreachable
# |     end_try_table
# |     unreachable
# | .LBB11_4:
# |     end_block
# | .Ltmp52:
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    _ZSt9terminatev
# |     unreachable
# | .LBB11_5:
# |     end_block
# |     return
# |     end_function
# | .Lfunc_end10:
# | 
# |     .no_dead_strip  __indirect_function_table
# |     .size   _ZTIi, 4
# |     .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.unwind_destinations,"",@
# `-----------------------------
# 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/exception.ll
 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm 
-mattr=+exception-handling
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm 
-mattr=+exception-handling
# .---command stdout------------
# |     .file   "<stdin>"
# |     .globaltype     __stack_pointer, i32
# |     .tagtype        __cpp_exception i32
# |     .functype       throw (i32) -> ()
# |     .functype       catch () -> ()
# |     .functype       cleanup () -> ()
# |     .functype       terminatepad () -> ()
# |     .functype       no_prolog_epilog_in_ehpad () -> ()
# |     .functype       no_sp_writeback () -> ()
# |     .functype       get_exception_wo_use () -> ()
# |     .functype       complex_cleanup_region () -> ()
# |     .functype       rethrow_terminator () -> ()
# |     .functype       inlined_cleanupret () -> ()
# |     .functype       invoke_throw (i32) -> ()
# |     .functype       unwind_destinations () -> ()
# |     .functype       foo () -> ()
# |     .functype       bar (i32) -> ()
# |     .functype       take_i32 (i32) -> ()
# |     .functype       __gxx_wasm_personality_v0 (i32) -> (i32)
# |     .functype       __cxa_allocate_exception (i32) -> (i32)
# |     .functype       __cxa_begin_catch (i32) -> (i32)
# |     .functype       __cxa_end_catch () -> ()
# |     .functype       __cxa_throw (i32, i32, i32) -> ()
# |     .functype       _ZSt9terminatev () -> ()
# |     .functype       _ZN4TempD2Ev (i32) -> (i32)
# |     .functype       _Unwind_CallPersonality (i32) -> (i32)
# |     .section        .text.throw,"",@
# |     .globl  throw                           # -- Begin function throw
# |     .type   throw,@function
# | throw:                                  # @throw
# |     .functype       throw (i32) -> ()
# | # %bb.0:
# |     local.get       0
# |     throw           __cpp_exception
# |     end_function
# |                                         # -- End function
# |     .section        .text.catch,"",@
# |     .globl  catch                           # -- Begin function catch
# |     .type   catch,@function
# | catch:                                  # @catch
# | .Lfunc_begin0:
# |     .functype       catch () -> ()
# |     .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
# | .LBB1_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_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           
# |     i32.const       8
# |     i32.load        __wasm_lpad_context
# |     i32.const       1
# |     i32.ne  
# |     br_if           0                               # 0: down to label3
# | # %bb.3:                                # %catch
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     call    __cxa_end_catch
# |     br              1                               # 1: down to label0
# | .LBB1_4:                                # %rethrow
# |     end_block                               # label3:
# |     local.get       2
# |     throw_ref
# | .LBB1_5:                                # %try.cont
# |     end_block                               # label0:
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end0:
# |     .section        .rodata.gcc_except_table,"",@
# |     .p2align        2, 0x0
# | GCC_except_table1:
# | .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   1                               #   Action: 1
# | .Lcst_end0:
# |     .int8   1                               # >> Action Record 1 <<
# |                                         #   Catch TypeInfo 1
# |     .int8   0                               #   No further actions
# |     .p2align        2, 0x0
# |                                         # >> Catch TypeInfos <<
# |     .int32  _ZTIi                           # TypeInfo 1
# | .Lttbase0:
# |     .p2align        2, 0x0
# | .LGCC_except_table_end0:
# |     .size   GCC_except_table1, .LGCC_except_table_end0-GCC_except_table1
# |                                         # -- End function
# |     .section        .text.cleanup,"",@
# |     .globl  cleanup                         # -- Begin function cleanup
# |     .type   cleanup,@function
# | cleanup:                                # @cleanup
# | .Lfunc_begin1:
# |     .functype       cleanup () -> ()
# |     .local          i32, exnref
# | # %bb.0:                                # %entry
# |     global.get      __stack_pointer
# |     i32.const       16
# |     i32.sub 
# |     local.tee       0
# |     global.set      __stack_pointer
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)      # 0: down to label5
# | .Ltmp3:                                 # EH_LABEL
# |     call    foo
# | .Ltmp4:                                 # EH_LABEL
# |     br              2                               # 2: down to label4
# | # %bb.1:
# |     end_try_table                           # label6:
# |     unreachable
# | .LBB2_2:                                # %ehcleanup
# |     end_block                               # label5:
# | .Ltmp5:                                 # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.const       15
# |     i32.add 
# |     call    _ZN4TempD2Ev
# |     drop
# |     local.get       1
# |     throw_ref
# | .LBB2_3:                                # %invoke.cont
# |     end_block                               # label4:
# |     local.get       0
# |     i32.const       15
# |     i32.add 
# |     call    _ZN4TempD2Ev
# |     drop
# |     local.get       0
# |     i32.const       16
# |     i32.add 
# |     global.set      __stack_pointer
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end1:
# |                                         # -- End function
# |     .section        .text.terminatepad,"",@
# |     .globl  terminatepad                    # -- Begin function terminatepad
# |     .type   terminatepad,@function
# | terminatepad:                           # @terminatepad
# | .Lfunc_begin2:
# |     .functype       terminatepad () -> ()
# |     .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 label8
# | .Ltmp6:                                 # EH_LABEL
# |     call    foo
# | .Ltmp7:                                 # EH_LABEL
# |     br              2                               # 2: down to label7
# | # %bb.1:
# |     end_try_table                           # label9:
# |     unreachable
# | .LBB3_2:                                # %catch.start
# |     end_block                               # label8:
# | .Ltmp8:                                 # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)      # 0: down to label11
# | .Ltmp9:                                 # EH_LABEL
# |     call    foo
# | .Ltmp10:                                # EH_LABEL
# |     br              2                               # 2: down to label10
# | # %bb.3:
# |     end_try_table                           # label12:
# |     unreachable
# | .LBB3_4:                                # %ehcleanup
# |     end_block                               # label11:
# | .Ltmp11:                                # EH_LABEL
# | .Ltmp12:                                # EH_LABEL
# |     local.set       2
# |     local.get       0
# |     global.set      __stack_pointer
# |     block           
# |     block           
# |     try_table        (catch_all 0)          # 0: down to label14
# |     call    __cxa_end_catch
# | .Ltmp13:                                # EH_LABEL
# |     br              2                               # 2: down to label13
# | # %bb.5:
# |     end_try_table                           # label15:
# |     unreachable
# | .LBB3_6:                                # %terminate
# |     end_block                               # label14:
# | .Ltmp14:                                # EH_LABEL
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    _ZSt9terminatev
# |     unreachable
# | .LBB3_7:                                # %invoke.cont2
# |     end_block                               # label13:
# |     local.get       2
# |     throw_ref
# | .LBB3_8:                                # %invoke.cont1
# |     end_block                               # label10:
# |     call    __cxa_end_catch
# | .LBB3_9:                                # %try.cont
# |     end_block                               # label7:
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end2:
# |                                         # -- End function
# |     .section        .text.no_prolog_epilog_in_ehpad,"",@
# |     .globl  no_prolog_epilog_in_ehpad       # -- Begin function 
no_prolog_epilog_in_ehpad
# |     .type   no_prolog_epilog_in_ehpad,@function
# | no_prolog_epilog_in_ehpad:              # @no_prolog_epilog_in_ehpad
# | .Lfunc_begin3:
# |     .functype       no_prolog_epilog_in_ehpad () -> ()
# |     .local          i32, i32, exnref
# | # %bb.0:                                # %entry
# |     global.get      __stack_pointer
# |     i32.const       16
# |     i32.sub 
# |     local.tee       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.const       12
# |     i32.add 
# |     call    bar
# |     block           
# |     block           () -> (i32, exnref)
# |     try_table        (catch_ref __cpp_exception 0) # 0: down to label17
# | .Ltmp15:                                # EH_LABEL
# |     call    foo
# | .Ltmp16:                                # EH_LABEL
# |     br              2                               # 2: down to label16
# | # %bb.1:
# |     end_try_table                           # label18:
# |     unreachable
# | .LBB4_2:                                # %catch.start
# |     end_block                               # label17:
# | .Ltmp17:                                # EH_LABEL
# |     local.set       2
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       4
# |     i32.const       GCC_except_table4
# |     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 label20
# | # %bb.3:                                # %catch
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     block           exnref
# |     try_table        (catch_all_ref 0)      # 0: down to label21
# | .Ltmp18:                                # EH_LABEL
# |     call    foo
# | .Ltmp19:                                # EH_LABEL
# |     br              3                               # 3: down to label19
# | # %bb.4:
# |     end_try_table                           # label22:
# |     unreachable
# | .LBB4_5:                                # %ehcleanup
# |     end_block                               # label21:
# | .Ltmp20:                                # EH_LABEL
# |     local.set       2
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    __cxa_end_catch
# |     local.get       2
# |     throw_ref
# | .LBB4_6:                                # %rethrow
# |     end_block                               # label20:
# |     local.get       2
# |     throw_ref
# | .LBB4_7:                                # %invoke.cont1
# |     end_block                               # label19:
# |     call    __cxa_end_catch
# | .LBB4_8:                                # %try.cont
# |     end_block                               # label16:
# |     local.get       0
# |     i32.const       16
# |     i32.add 
# |     global.set      __stack_pointer
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end3:
# |     .section        .rodata.gcc_except_table,"",@
# |     .p2align        2, 0x0
# | GCC_except_table4:
# | .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
# | .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_table4, .LGCC_except_table_end1-GCC_except_table4
# |                                         # -- End function
# |     .section        .text.no_sp_writeback,"",@
# |     .globl  no_sp_writeback                 # -- Begin function 
no_sp_writeback
# |     .type   no_sp_writeback,@function
# | no_sp_writeback:                        # @no_sp_writeback
# | .Lfunc_begin4:
# |     .functype       no_sp_writeback () -> ()
# |     .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 label24
# | .Ltmp21:                                # EH_LABEL
# |     call    foo
# | .Ltmp22:                                # EH_LABEL
# |     br              2                               # 2: down to label23
# | # %bb.1:
# |     end_try_table                           # label25:
# |     unreachable
# | .LBB5_2:                                # %catch.start
# |     end_block                               # label24:
# | .Ltmp23:                                # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     call    __cxa_end_catch
# | .LBB5_3:                                # %try.cont
# |     end_block                               # label23:
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end4:
# |                                         # -- End function
# |     .section        .text.get_exception_wo_use,"",@
# |     .globl  get_exception_wo_use            # -- Begin function 
get_exception_wo_use
# |     .type   get_exception_wo_use,@function
# | get_exception_wo_use:                   # @get_exception_wo_use
# | .Lfunc_begin5:
# |     .functype       get_exception_wo_use () -> ()
# |     .local          i32
# | # %bb.0:                                # %entry
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           i32
# |     try_table        (catch __cpp_exception 0) # 0: down to label27
# | .Ltmp24:                                # EH_LABEL
# |     call    foo
# | .Ltmp25:                                # EH_LABEL
# |     br              2                               # 2: down to label26
# | # %bb.1:
# |     end_try_table                           # label28:
# |     unreachable
# | .LBB6_2:                                # %catch.start
# |     end_block                               # label27:
# | .Ltmp26:                                # EH_LABEL
# |     drop
# |     local.get       0
# |     global.set      __stack_pointer
# | .LBB6_3:                                # %try.cont
# |     end_block                               # label26:
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end5:
# |                                         # -- End function
# |     .section        .text.complex_cleanup_region,"",@
# |     .globl  complex_cleanup_region          # -- Begin function 
complex_cleanup_region
# |     .type   complex_cleanup_region,@function
# | complex_cleanup_region:                 # @complex_cleanup_region
# | .Lfunc_begin6:
# |     .functype       complex_cleanup_region () -> ()
# |     .local          i32, exnref
# | # %bb.0:                                # %entry
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)      # 0: down to label30
# | .Ltmp27:                                # EH_LABEL
# |     call    foo
# | .Ltmp28:                                # EH_LABEL
# |     br              2                               # 2: down to label29
# | # %bb.1:
# |     end_try_table                           # label31:
# |     unreachable
# | .LBB7_2:                                # %ehcleanup
# |     end_block                               # label30:
# | .Ltmp29:                                # EH_LABEL
# | .Ltmp30:                                # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     block           
# |     block           
# |     try_table        (catch_all 0)          # 0: down to label33
# |     block           i32
# |     try_table        (catch __cpp_exception 0) # 0: down to label35
# |     call    foo
# | .Ltmp31:                                # EH_LABEL
# |     br              4                               # 4: down to label32
# | # %bb.3:
# |     end_try_table                           # label36:
# |     unreachable
# | .LBB7_4:                                # %catch.start
# |     end_block                               # label35:
# | .Ltmp32:                                # EH_LABEL
# |     drop
# |     local.get       0
# |     global.set      __stack_pointer
# |     br              2                               # 2: down to label32
# | # %bb.5:
# |     end_try_table                           # label34:
# |     unreachable
# | .LBB7_6:                                # %ehcleanup.1
# |     end_block                               # label33:
# | .Ltmp33:                                # EH_LABEL
# |     local.get       0
# |     global.set      __stack_pointer
# |     unreachable
# | .LBB7_7:                                # %ehcleanupret
# |     end_block                               # label32:
# |     local.get       1
# |     throw_ref
# | .LBB7_8:                                # %invoke.cont
# |     end_block                               # label29:
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end6:
# |                                         # -- End function
# |     .section        .text.rethrow_terminator,"",@
# |     .globl  rethrow_terminator              # -- Begin function 
rethrow_terminator
# |     .type   rethrow_terminator,@function
# | rethrow_terminator:                     # @rethrow_terminator
# | .Lfunc_begin7:
# |     .functype       rethrow_terminator () -> ()
# |     .local          i32, i32, exnref, exnref
# | # %bb.0:                                # %entry
# |     block           exnref
# |     global.get      __stack_pointer
# |     i32.const       16
# |     i32.sub 
# |     local.tee       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.const       10
# |     i32.store       12
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)      # 0: down to label39
# |     block           () -> (i32, exnref)
# |     try_table        (catch_ref __cpp_exception 0) # 0: down to label41
# | .Ltmp34:                                # EH_LABEL
# |     call    foo
# | .Ltmp35:                                # EH_LABEL
# |     br              4                               # 4: down to label38
# | # %bb.1:
# |     end_try_table                           # label42:
# |     unreachable
# | .LBB8_2:                                # %catch.start
# |     end_block                               # label41:
# | .Ltmp36:                                # EH_LABEL
# |     local.set       2
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       4
# |     i32.const       GCC_except_table8
# |     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 label43
# | # %bb.3:                                # %catch
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     try_table        (catch_all_ref 4)      # 4: down to label37
# |     call    __cxa_end_catch
# | # %bb.4:
# |     end_try_table                           # label44:
# | .LBB8_5:
# |     br              3                               # 3: down to label38
# | .LBB8_6:                                # %rethrow
# |     end_block                               # label43:
# |     local.get       0
# |     i32.const       20
# |     i32.store       12
# |     local.get       2
# |     throw_ref
# | # %bb.7:
# |     end_try_table                           # label40:
# |     unreachable
# | .LBB8_8:                                # %ehcleanup
# |     end_block                               # label39:
# | .Ltmp37:                                # EH_LABEL
# |     local.set       2
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       0
# |     i32.load        12
# |     call    take_i32
# |     local.get       2
# |     throw_ref
# | .LBB8_9:                                # %try.cont
# |     end_block                               # label38:
# |     local.get       0
# |     i32.const       16
# |     i32.add 
# |     global.set      __stack_pointer
# |     return
# |     unreachable
# | .LBB8_10:
# |     end_block                               # label37:
# |     local.set       3
# |     local.get       3
# |     throw_ref
# |     end_function
# | .Lfunc_end7:
# |     .section        .rodata.gcc_except_table,"",@
# |     .p2align        2, 0x0
# | GCC_except_table8:
# | .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  _ZTIi                           # TypeInfo 1
# | .Lttbase2:
# |     .p2align        2, 0x0
# | .LGCC_except_table_end2:
# |     .size   GCC_except_table8, .LGCC_except_table_end2-GCC_except_table8
# |                                         # -- End function
# |     .section        .text.inlined_cleanupret,"",@
# |     .globl  inlined_cleanupret              # -- Begin function 
inlined_cleanupret
# |     .type   inlined_cleanupret,@function
# | inlined_cleanupret:                     # @inlined_cleanupret
# | .Lfunc_begin8:
# |     .functype       inlined_cleanupret () -> ()
# |     .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       2
# |     i32.store       0
# | .Ltmp38:                                # EH_LABEL
# |     block           
# |     block           exnref
# |     try_table        (catch_all_ref 0)      # 0: down to label47
# |     local.get       1
# |     i32.const       _ZTIi
# |     i32.const       0
# |     call    __cxa_throw
# | .Ltmp39:                                # EH_LABEL
# |     br              2                               # 2: down to label46
# | # %bb.1:
# |     end_try_table                           # label48:
# |     unreachable
# | .LBB9_2:                                # %ehcleanup
# |     end_block                               # label47:
# | .Ltmp40:                                # EH_LABEL
# |     local.set       2
# |     local.get       0
# |     global.set      __stack_pointer
# |     i32.const       4
# |     call    __cxa_allocate_exception
# |     local.tee       1
# |     i32.const       1
# |     i32.store       0
# | .Ltmp41:                                # EH_LABEL
# |     block           
# |     try_table        (catch_all 0)          # 0: down to label49
# |     block           
# |     block           i32
# |     try_table        (catch __cpp_exception 0) # 0: down to label52
# |     local.get       1
# |     i32.const       _ZTIi
# |     i32.const       0
# |     call    __cxa_throw
# | .Ltmp42:                                # EH_LABEL
# |     br              2                               # 2: down to label51
# | # %bb.3:
# |     end_try_table                           # label53:
# |     unreachable
# | .LBB9_4:                                # %catch.start.i
# |     end_block                               # label52:
# | .Ltmp43:                                # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# | .Ltmp44:                                # EH_LABEL
# |     call    __cxa_end_catch
# | .Ltmp45:                                # EH_LABEL
# | # %bb.5:                                # %invoke.cont.i
# | # %bb.6:                                # %_ZN4TempD2Ev.exit
# |     block           i32
# |     try_table        (catch_all_ref 5)      # 5: down to label45
# |     try_table        (catch __cpp_exception 1) # 1: down to label54
# |     local.get       2
# |     throw_ref
# | # %bb.7:
# |     end_try_table                           # label56:
# | # %bb.8:
# |     end_try_table                           # label55:
# | .LBB9_9:
# |     unreachable
# | .LBB9_10:                               # %catch.start
# |     end_block                               # label54:
# | .Ltmp46:                                # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     try_table        (catch_all_ref 4)      # 4: down to label45
# |     call    __cxa_end_catch
# | # %bb.11:
# |     end_try_table                           # label57:
# | .LBB9_12:                               # %try.cont
# |     return
# | .LBB9_13:                               # %unreachable
# |     end_block                               # label51:
# |     unreachable
# | # %bb.14:
# |     end_try_table                           # label50:
# |     unreachable
# | .LBB9_15:                               # %terminate.i
# |     end_block                               # label49:
# | .Ltmp47:                                # EH_LABEL
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    _ZSt9terminatev
# |     unreachable
# | .LBB9_16:                               # %unreachable.for.entry
# |     end_block                               # label46:
# |     unreachable
# |     unreachable
# | .LBB9_17:
# |     end_block                               # label45:
# |     local.set       3
# |     local.get       3
# |     throw_ref
# |     end_function
# | .Lfunc_end8:
# |                                         # -- End function
# |     .section        .text.invoke_throw,"",@
# |     .globl  invoke_throw                    # -- Begin function invoke_throw
# |     .type   invoke_throw,@function
# | invoke_throw:                           # @invoke_throw
# | .Lfunc_begin9:
# |     .functype       invoke_throw (i32) -> ()
# |     .local          i32
# | # %bb.0:                                # %entry
# |     global.get      __stack_pointer
# |     local.set       1
# |     block           i32
# |     try_table        (catch __cpp_exception 0) # 0: down to label58
# |     local.get       0
# |     throw           __cpp_exception
# | # %bb.1:
# |     end_try_table                           # label59:
# |     unreachable
# | .LBB10_2:                               # %catch.start
# |     end_block                               # label58:
# | .Ltmp48:                                # EH_LABEL
# |     local.set       0
# |     local.get       1
# |     global.set      __stack_pointer
# |     local.get       0
# |     call    __cxa_begin_catch
# |     drop
# |     call    __cxa_end_catch
# | # %bb.3:                                # %try.cont
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end9:
# |                                         # -- End function
# |     .section        .text.unwind_destinations,"",@
# |     .globl  unwind_destinations             # -- Begin function 
unwind_destinations
# |     .type   unwind_destinations,@function
# | unwind_destinations:                    # @unwind_destinations
# | .Lfunc_begin10:
# |     .functype       unwind_destinations () -> ()
# |     .local          i32, i32
# | # %bb.0:                                # %entry
# |     global.get      __stack_pointer
# |     local.set       0
# |     block           
# |     block           
# |     try_table        (catch_all 0)          # 0: down to label61
# |     block           i32
# |     try_table        (catch __cpp_exception 0) # 0: down to label63
# | .Ltmp49:                                # EH_LABEL
# |     call    foo
# | .Ltmp50:                                # EH_LABEL
# |     br              4                               # 4: down to label60
# | # %bb.1:
# |     end_try_table                           # label64:
# |     unreachable
# | .LBB11_2:                               # %catch.start
# |     end_block                               # label63:
# | .Ltmp51:                                # EH_LABEL
# |     local.set       1
# |     local.get       0
# |     global.set      __stack_pointer
# |     local.get       1
# |     call    __cxa_begin_catch
# |     drop
# |     call    _ZSt9terminatev
# |     unreachable
# | # %bb.3:
# |     end_try_table                           # label62:
# |     unreachable
# | .LBB11_4:                               # %terminate
# |     end_block                               # label61:
# | .Ltmp52:                                # EH_LABEL
# |     local.get       0
# |     global.set      __stack_pointer
# |     call    _ZSt9terminatev
# |     unreachable
# | .LBB11_5:                               # %try.cont
# |     end_block                               # label60:
# |                                         # fallthrough-return
# |     end_function
# | .Lfunc_end10:
# |                                         # -- End function
# |     .no_dead_strip  __indirect_function_table
# |     .size   _ZTIi, 4
# |     .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.unwind_destinations,"",@
# `-----------------------------
# 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/exception.ll
 -wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm 
-mattr=+exception-handling -filetype=obj
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm 
-mattr=+exception-handling -filetype=obj
# .---command stderr------------
# | llc: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/MC/MCWasmStreamer.cpp:158:
 virtual void llvm::MCWasmStreamer::emitULEB128Value(const MCExpr *): Assertion 
`Value->getKind() == MCExpr::SymbolRef && "Non-absolute leb values can only be 
symbol refs"' failed.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ 
and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0.  Program arguments: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-wasm-enable-eh -wasm-use-legacy-eh=false -exception-model=wasm 
-mattr=+exception-handling -filetype=obj
# | 1.  Running pass 'Function Pass Manager' on module '<stdin>'.
# | 2.  Running pass 'WebAssembly Assembly Printer' on function '@catch'
# |  #0 0x0000000007f09078 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:834:13
# |  #1 0x0000000007f06785 llvm::sys::RunSignalHandlers() 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Signals.cpp:105:18
# |  #2 0x0000000007f09e41 SignalHandler(int, siginfo_t*, void*) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Support/Unix/Signals.inc:426:38
# |  #3 0x00007f2ee13f4330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
# |  #4 0x00007f2ee144db2c pthread_kill 
(/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
# |  #5 0x00007f2ee13f427e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
# |  #6 0x00007f2ee13d78ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
# |  #7 0x00007f2ee13d781b (/lib/x86_64-linux-gnu/libc.so.6+0x2881b)
# |  #8 0x00007f2ee13ea517 (/lib/x86_64-linux-gnu/libc.so.6+0x3b517)
# |  #9 0x00000000075d18bf 
(/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc+0x75d18bf)
# | #10 0x0000000006cc3605 
llvm::EHStreamer::emitExceptionTable()::$_1::operator()() const 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp:500:7
# | #11 0x0000000006cc2535 size 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:80:32
# | #12 0x0000000006cc2535 end 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/SmallVector.h:273:37
# | #13 0x0000000006cc2535 llvm::EHStreamer::emitExceptionTable() 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp:596:47
# | #14 0x0000000006cec612 
llvm::WasmException::endFunction(llvm::MachineFunction const*) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/CodeGen/AsmPrinter/WasmException.cpp:33:3
# | #15 0x0000000006c38ddf llvm::AsmPrinter::emitFunctionBody() 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp:2289:22
# | #16 0x00000000062d222b 
llvm::WebAssemblyAsmPrinter::runOnMachineFunction(llvm::MachineFunction&) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h:58:5
# | #17 0x0000000006f15343 
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:0:10
# | #18 0x0000000007485345 llvm::FPPassManager::runOnFunction(llvm::Function&) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1398:27
# | #19 0x000000000748d2f2 llvm::FPPassManager::runOnModule(llvm::Module&) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1444:13
# | #20 0x0000000007485dec runOnModule 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1513:27
# | #21 0x0000000007485dec llvm::legacy::PassManagerImpl::run(llvm::Module&) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:531:44
# | #22 0x0000000004dd8308 compileModule(char**, llvm::LLVMContext&, 
std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char>>&) 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/tools/llc/llc.cpp:0:8
# | #23 0x0000000004dd56a0 main 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/tools/llc/llc.cpp:451:13
# | #24 0x00007f2ee13d91ca (/lib/x86_64-linux-gnu/libc.so.6+0x2a1ca)
# | #25 0x00007f2ee13d928b __libc_start_main 
(/lib/x86_64-linux-gnu/libc.so.6+0x2a28b)
# | #26 0x0000000004dd1125 _start 
(/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc+0x4dd1125)
# `-----------------------------
# error: command failed with exit status: -6

--

```
</details>
<details>
<summary>LLVM.CodeGen/WebAssembly/target-features-cpus.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 1
/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/target-features-cpus.ll
 -mcpu=mvp | 
/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/target-features-cpus.ll
 --check-prefixes MVP
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mcpu=mvp
# 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/target-features-cpus.ll
 --check-prefixes MVP
# note: command had no output on stdout or stderr
# 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/target-features-cpus.ll
 -mcpu=generic | 
/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/target-features-cpus.ll
 --check-prefixes GENERIC
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-mcpu=generic
# 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/target-features-cpus.ll
 --check-prefixes GENERIC
# 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/target-features-cpus.ll
 -mcpu=lime1 | 
/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/target-features-cpus.ll
 --check-prefixes LIME1
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-mcpu=lime1
# 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/target-features-cpus.ll
 --check-prefixes LIME1
# note: command had no output on stdout or stderr
# 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/target-features-cpus.ll
 | /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/target-features-cpus.ll
 --check-prefixes GENERIC
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc
# 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/target-features-cpus.ll
 --check-prefixes GENERIC
# 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/target-features-cpus.ll
 -mcpu=bleeding-edge | 
/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/target-features-cpus.ll
 --check-prefixes BLEEDING-EDGE
# executed command: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc 
-mcpu=bleeding-edge
# 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/target-features-cpus.ll
 --check-prefixes BLEEDING-EDGE
# .---command stderr------------
# | 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/target-features-cpus.ll:75:23:
 error: BLEEDING-EDGE-NEXT: expected string not found in input
# | ; BLEEDING-EDGE-NEXT: .int8 17
# |                       ^
# | <stdin>:2:47: note: scanning from here
# |  .section .custom_section.target_features,"",@
# |                                               ^
# | <stdin>:3:2: note: possible intended match here
# |  .int8 18
# |  ^
# | 
# | Input file: <stdin>
# | Check file: 
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/WebAssembly/target-features-cpus.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1:  .file "<stdin>" 
# |            2:  .section .custom_section.target_features,"",@ 
# | next:75'0                                                   X error: no 
match found
# |            3:  .int8 18 
# | next:75'0     ~~~~~~~~~~
# | next:75'1      ?         possible intended match
# |            4:  .int8 43 
# | next:75'0     ~~~~~~~~~~
# |            5:  .int8 7 
# | next:75'0     ~~~~~~~~~
# |            6:  .ascii "atomics" 
# | next:75'0     ~~~~~~~~~~~~~~~~~~
# |            7:  .int8 43 
# | next:75'0     ~~~~~~~~~~
# |            8:  .int8 14 
# | next:75'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/146230
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to