| // This test ensures functions in custom sections get unwind info emitted in a |
| // distinct .xdata section. |
| // RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -s -sd | FileCheck %s |
| |
| // CHECK: Name: .xdata |
| // CHECK-NEXT: VirtualSize |
| // CHECK-NEXT: VirtualAddress |
| // CHECK-NEXT: RawDataSize: 8 |
| // CHECK-NEXT: PointerToRawData |
| // CHECK-NEXT: PointerToRelocations |
| // CHECK-NEXT: PointerToLineNumbers |
| // CHECK-NEXT: RelocationCount: 0 |
| // CHECK-NEXT: LineNumberCount: 0 |
| // CHECK-NEXT: Characteristics [ |
| // CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES |
| // CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA |
| // CHECK-NEXT: IMAGE_SCN_MEM_READ |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: SectionData ( |
| // CHECK-NEXT: 0000: 01050200 05500402 |
| // CHECK-NEXT: ) |
| |
| // CHECK: Name: .xdata |
| // CHECK-NEXT: VirtualSize |
| // CHECK-NEXT: VirtualAddress |
| // CHECK-NEXT: RawDataSize: 8 |
| // CHECK-NEXT: PointerToRawData |
| // CHECK-NEXT: PointerToRelocations |
| // CHECK-NEXT: PointerToLineNumbers |
| // CHECK-NEXT: RelocationCount: 0 |
| // CHECK-NEXT: LineNumberCount: 0 |
| // CHECK-NEXT: Characteristics [ |
| // CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES |
| // CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA |
| // CHECK-NEXT: IMAGE_SCN_MEM_READ |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: SectionData ( |
| // CHECK-NEXT: 0000: 01050200 05500402 |
| // CHECK-NEXT: ) |
| |
| // CHECK: Name: .xdata |
| // CHECK-NEXT: VirtualSize |
| // CHECK-NEXT: VirtualAddress |
| // CHECK-NEXT: RawDataSize: 8 |
| // CHECK-NEXT: PointerToRawData |
| // CHECK-NEXT: PointerToRelocations |
| // CHECK-NEXT: PointerToLineNumbers |
| // CHECK-NEXT: RelocationCount: 0 |
| // CHECK-NEXT: LineNumberCount: 0 |
| // CHECK-NEXT: Characteristics [ |
| // CHECK-NEXT: IMAGE_SCN_ALIGN_4BYTES |
| // CHECK-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA |
| // CHECK-NEXT: IMAGE_SCN_MEM_READ |
| // CHECK-NEXT: ] |
| // CHECK-NEXT: SectionData ( |
| // CHECK-NEXT: 0000: 01050200 05500402 |
| // CHECK-NEXT: ) |
| |
| |
| |
| .section .text$foo,"x" |
| .globl foo |
| .def foo; .scl 2; .type 32; .endef |
| .seh_proc foo |
| foo: |
| subq $8, %rsp |
| .seh_stackalloc 8 |
| pushq %rbp |
| .seh_pushreg %rbp |
| .seh_endprologue |
| popq %rbp |
| addq $8, %rsp |
| ret |
| .seh_endproc |
| |
| .section .mytext,"x" |
| .globl bar |
| .def bar; .scl 2; .type 32; .endef |
| .seh_proc bar |
| bar: |
| subq $8, %rsp |
| .seh_stackalloc 8 |
| pushq %rbp |
| .seh_pushreg %rbp |
| .seh_endprologue |
| popq %rbp |
| addq $8, %rsp |
| ret |
| .seh_endproc |
| |
| .section .text |
| .globl baz |
| .def baz; .scl 2; .type 32; .endef |
| .seh_proc baz |
| baz: |
| subq $8, %rsp |
| .seh_stackalloc 8 |
| pushq %rbp |
| .seh_pushreg %rbp |
| .seh_endprologue |
| popq %rbp |
| addq $8, %rsp |
| ret |
| .seh_endproc |
| |