Mercurial > hg > CbC > CbC_llvm
view test/MC/COFF/seh-section.s @ 83:60c9769439b8 LLVM3.7
LLVM 3.7
author | Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 18 Feb 2015 14:55:36 +0900 |
parents | 95c75e76d11b |
children | 1172e4bd9c6f |
line wrap: on
line source
// This test ensures functions in custom sections get unwind info emitted in a // distinct .xdata section. Ideally we'd just emit a second .xdata section with // the same name and characteristics, but MC uniques sections by name and // characteristics, so that is not possible. // RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -s -sd | FileCheck %s // CHECK: Name: .xdata$foo // 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$.mytext // 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