1 # RUN: %{cxx} %{flags} %s %{link_flags} -no-pie -o %t.exe
4 # REQUIRES: linux && target={{x86_64-.+}}
5 # UNSUPPORTED: target={{.+-android.*}}
6 # UNSUPPORTED: no-exceptions
8 ## Check that libc++abi works correctly when LPStart address is explicitly set
11 ## This file is generated from the following C++ source code.
23 ## The exception table is modified to use udata4 encoding for LPStart and
24 ## sdata4 encoding for call sites.
27 .globl main # -- Begin function main
33 .globl __gxx_personality_v0
34 .cfi_personality 3, __gxx_personality_v0
35 .cfi_lsda 27, .Lexception0
38 .cfi_def_cfa_offset 16
41 .cfi_def_cfa_register %rbp
45 callq __cxa_allocate_exception@PLT
49 movq _ZTIi@GOTPCREL
(%rip
), %rsi
63 callq __cxa_begin_catch@PLT
65 callq __cxa_end_catch@PLT
72 .LBB0_4: # %unreachable
74 .size main, .Lfunc_end0-main
77 .section .gcc_except_table,"a",@progbits
81 .byte 3 # @LPStart Encoding = udata4
83 .byte 155 # @TType Encoding = indirect pcrel sdata4
84 .uleb128 .Lttbase0-.Lttbaseref0
86 .byte 11 # Call site Encoding = sdata4
87 .uleb128 .Lcst_end0-.Lcst_begin0
89 .long .Lfunc_begin0-.Lfunc_begin0 # >> Call Site 1 <<
90 .long .Ltmp0-.Lfunc_begin0 # Call between .Lfunc_begin0 and .Ltmp0
91 .long 0 # has no landing pad
92 .byte 0 # On action: cleanup
93 .long .Ltmp0-.Lfunc_begin0 # >> Call Site 2 <<
94 .long .Ltmp1-.Ltmp0 # Call between .Ltmp0 and .Ltmp1
96 .byte 1 # On action: 1
97 .long .Ltmp1-.Lfunc_begin0 # >> Call Site 3 <<
98 .long .Lfunc_end0-.Ltmp1 # Call between .Ltmp1 and .Lfunc_end0
99 .long 0 # has no landing pad
100 .byte 0 # On action: cleanup
102 .byte 1 # >> Action Record 1 <<
104 .byte 0 # No further actions
106 # >> Catch TypeInfos <<