brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · b487ff0 Raw
92 lines · plain
1# RUN: %clangxx %cflags -no-pie %s -o %t.exe -Wl,-q2# RUN: llvm-bolt %t.exe -o %t.exe.bolt3# RUN: %t.exe.bolt4 5# REQUIRES: system-linux6 7## Test that BOLT properly handles LPStart when LPStartEncoding is different8## from DW_EH_PE_omit.9 10# The test case compiled with -O1 from:11#12# int main() {13#   try {14#     throw 42;15#   } catch (...) {16#     return 0;17#   }18#   return 1;19# }20#21# The exception table was modified with udata4 LPStartEncoding and sdata422# CallSiteEncoding.23 24	.text25	.globl	main                            # -- Begin function main26	.p2align	4, 0x9027	.type	main,@function28main:                                   # @main29.Lfunc_begin0:30	.cfi_startproc31	.cfi_personality 3, __gxx_personality_v032	.cfi_lsda 3, .Lexception033# %bb.0:34	pushq	%rax35	.cfi_def_cfa_offset 1636	movl	$4, %edi37	callq	__cxa_allocate_exception38	movl	$42, (%rax)39.Ltmp0:40	movl	$_ZTIi, %esi41	movq	%rax, %rdi42	xorl	%edx, %edx43	callq	__cxa_throw44.Ltmp1:45# %bb.1:46.LBB0_2:47.Ltmp2:48	movq	%rax, %rdi49	callq	__cxa_begin_catch50	callq	__cxa_end_catch51	xorl	%eax, %eax52	popq	%rcx53	.cfi_def_cfa_offset 854	retq55.Lfunc_end0:56	.size	main, .Lfunc_end0-main57	.cfi_endproc58	.section	.gcc_except_table,"a",@progbits59	.p2align	260GCC_except_table0:61.Lexception0:62	.byte	3                               # @LPStart Encoding = udata463  .long 064	.byte	3                               # @TType Encoding = udata465	.uleb128 .Lttbase0-.Lttbaseref066.Lttbaseref0:67	.byte	11                              # Call site Encoding = sdata468	.uleb128 .Lcst_end0-.Lcst_begin069.Lcst_begin0:70	.long .Lfunc_begin0-.Lfunc_begin0    # >> Call Site 1 <<71	.long .Ltmp0-.Lfunc_begin0           #   Call between .Lfunc_begin0 and .Ltmp072	.long	0                               #     has no landing pad73	.byte	0                               #   On action: cleanup74	.long .Ltmp0-.Lfunc_begin0           # >> Call Site 2 <<75	.long .Ltmp1-.Ltmp0                  #   Call between .Ltmp0 and .Ltmp176	.long .Ltmp2                         #     jumps to .Ltmp277	.byte	1                               #   On action: 178	.long .Ltmp1-.Lfunc_begin0           # >> Call Site 3 <<79	.long .Lfunc_end0-.Ltmp1             #   Call between .Ltmp1 and .Lfunc_end080	.long	0                               #     has no landing pad81	.byte	0                               #   On action: cleanup82.Lcst_end0:83	.byte	1                               # >> Action Record 1 <<84                                        #   Catch TypeInfo 185	.byte	0                               #   No further actions86	.p2align	287                                        # >> Catch TypeInfos <<88	.long	0                               # TypeInfo 189.Lttbase0:90	.p2align	291                                        # -- End function92