# REQUIRES: asserts # UNSUPPORTED: system-windows # RUN: llvm-mc -triple=x86_64-unknown-linux -position-independent \ # RUN: -filetype=obj -o %t %s # RUN: llvm-jitlink -debug-only=jitlink -define-abs bar=0x01 \ # RUN: -define-abs _ZTIi=0x02 -noexec %t 2>&1 | FileCheck %s # # FIXME: This test should run on windows. Investigate spurious # 'note: command had no output on stdout or stderr' errors, then re-enable. # # Check that a basic .eh-frame section is recognized and parsed. We # Expect to see two FDEs with corresponding keep-alive edges. # # CHECK: Adding keep-alive edge from target at {{.*}} to FDE at # CHECK: Adding keep-alive edge from target at {{.*}} to FDE at .text .file "exceptions.cpp" .globl foo .p2align 4, 0x90 .type foo,@function foo: .cfi_startproc pushq %rax .cfi_def_cfa_offset 16 movl $4, %edi callq __cxa_allocate_exception@PLT movl $1, (%rax) movq _ZTIi@GOTPCREL(%rip), %rsi movq %rax, %rdi xorl %edx, %edx callq __cxa_throw@PLT .Lfunc_end0: .size foo, .Lfunc_end0-foo .cfi_endproc .globl main .p2align 4, 0x90 .type main,@function main: .Lfunc_begin0: .cfi_startproc .cfi_personality 155, DW.ref.__gxx_personality_v0 .cfi_lsda 27, .Lexception0 pushq %rbx .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 xorl %ebx, %ebx .Ltmp0: callq bar@PLT .Ltmp1: movl %ebx, %eax popq %rbx .cfi_def_cfa_offset 8 retq .LBB1_1: .cfi_def_cfa_offset 16 .Ltmp2: movq %rax, %rdi callq __cxa_begin_catch@PLT callq __cxa_end_catch@PLT movl $1, %ebx movl %ebx, %eax popq %rbx .cfi_def_cfa_offset 8 retq .Lfunc_end1: .size main, .Lfunc_end1-main .cfi_endproc .section .gcc_except_table,"a",@progbits .p2align 2 GCC_except_table1: .Lexception0: .byte 255 .byte 156 .uleb128 .Lttbase0-.Lttbaseref0 .Lttbaseref0: .byte 1 .uleb128 .Lcst_end0-.Lcst_begin0 .Lcst_begin0: .uleb128 .Ltmp0-.Lfunc_begin0 .uleb128 .Ltmp1-.Ltmp0 .uleb128 .Ltmp2-.Lfunc_begin0 .byte 1 .uleb128 .Ltmp1-.Lfunc_begin0 .uleb128 .Lfunc_end1-.Ltmp1 .byte 0 .byte 0 .Lcst_end0: .byte 1 .byte 0 .p2align 2 .Ltmp3: .quad .L_ZTIi.DW.stub-.Ltmp3 .Lttbase0: .p2align 2 .data .p2align 3 .L_ZTIi.DW.stub: .quad _ZTIi .hidden DW.ref.__gxx_personality_v0 .weak DW.ref.__gxx_personality_v0 .section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat .p2align 3 .type DW.ref.__gxx_personality_v0,@object .size DW.ref.__gxx_personality_v0, 8 DW.ref.__gxx_personality_v0: .quad __gxx_personality_v0 .ident "clang version 12.0.0 (git@github.com:llvm/llvm-project.git afd483e57d166418e94a65bd9716e7dc4c114eed)" .section ".note.GNU-stack","",@progbits .addrsig .addrsig_sym __gxx_personality_v0 .addrsig_sym _ZTIi