1 # RUN: %clangxx %cflags -no-pie %s -o %t.exe -Wl,-q
2 # RUN: llvm-bolt %t.exe -o %t.exe.bolt
5 # REQUIRES: system-linux
7 ## Test that BOLT properly handles LPStart when LPStartEncoding is different
10 # The test case compiled with -O1 from:
21 # The exception table was modified with udata4 LPStartEncoding and sdata4
25 .globl main # -- Begin function main
31 .cfi_personality 3, __gxx_personality_v0
32 .cfi_lsda 3, .Lexception0
35 .cfi_def_cfa_offset 16
37 callq __cxa_allocate_exception
49 callq __cxa_begin_catch
56 .size main, .Lfunc_end0-main
58 .section .gcc_except_table,"a",@progbits
62 .byte 3 # @LPStart Encoding = udata4
64 .byte 3 # @TType Encoding = udata4
65 .uleb128 .Lttbase0-.Lttbaseref0
67 .byte 11 # Call site Encoding = sdata4
68 .uleb128 .Lcst_end0-.Lcst_begin0
70 .long .Lfunc_begin0-.Lfunc_begin0 # >> Call Site 1 <<
71 .long .Ltmp0-.Lfunc_begin0 # Call between .Lfunc_begin0 and .Ltmp0
72 .long 0 # has no landing pad
73 .byte 0 # On action: cleanup
74 .long .Ltmp0-.Lfunc_begin0 # >> Call Site 2 <<
75 .long .Ltmp1-.Ltmp0 # Call between .Ltmp0 and .Ltmp1
76 .long .Ltmp2 # jumps to .Ltmp2
77 .byte 1 # On action: 1
78 .long .Ltmp1-.Lfunc_begin0 # >> Call Site 3 <<
79 .long .Lfunc_end0-.Ltmp1 # Call between .Ltmp1 and .Lfunc_end0
80 .long 0 # has no landing pad
81 .byte 0 # On action: cleanup
83 .byte 1 # >> Action Record 1 <<
85 .byte 0 # No further actions
87 # >> Catch TypeInfos <<