137 lines · plain
1// This test checks that the COFF object emitter works for the most basic2// programs.3 4// RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -h -S --sr --sd --symbols - | FileCheck %s5 6.def _main;7 .scl 2;8 .type 32;9 .endef10 .text11 .globl _main12 .align 16, 0x9013_main: # @main14# %bb.0: # %entry15 subl $4, %esp16 movl $.L_.str, (%esp)17 call _printf18 xorl %eax, %eax19 addl $4, %esp20 ret21 22 .data23.L_.str: # @.str24 .asciz "Hello World"25 26// CHECK: ImageFileHeader {27// CHECK: Machine: IMAGE_FILE_MACHINE_AMD6428// CHECK: SectionCount: 329// CHECK: TimeDateStamp: {{[0-9]+}}30// CHECK: PointerToSymbolTable: 0x{{[0-9A-F]+}}31// CHECK: SymbolCount: 832// CHECK: OptionalHeaderSize: 033// CHECK: Characteristics [ (0x0)34// CHECK: ]35// CHECK: }36// CHECK: Sections [37// CHECK: Section {38// CHECK: Number: [[TextNum:[0-9]+]]39// CHECK: Name: .text40// CHECK: VirtualSize: 041// CHECK: VirtualAddress: 042// CHECK: RawDataSize: [[TextSize:[0-9]+]]43// CHECK: PointerToRawData: 0x{{[0-9A-F]+}}44// CHECK: PointerToRelocations: 0x{{[0-9A-F]+}}45// CHECK: PointerToLineNumbers: 0x046// CHECK: RelocationCount: 247// CHECK: LineNumberCount: 048// CHECK: Characteristics [ (0x60500020)49// CHECK: IMAGE_SCN_ALIGN_16BYTES50// CHECK: IMAGE_SCN_CNT_CODE51// CHECK: IMAGE_SCN_MEM_EXECUTE52// CHECK: IMAGE_SCN_MEM_READ53// CHECK: ]54// CHECK: Relocations [55// CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_AMD64_ADDR32 .data56// CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_AMD64_REL32 _printf57// CHECK: ]58// CHECK: }59// CHECK: Section {60// CHECK: Number: [[DataNum:[0-9]+]]61// CHECK: Name: .data62// CHECK: VirtualSize: 063// CHECK: VirtualAddress: 064// CHECK: RawDataSize: [[DataSize:[0-9]+]]65// CHECK: PointerToRawData: 0x{{[0-9A-F]+}}66// CHECK: PointerToRelocations: 0x067// CHECK: PointerToLineNumbers: 0x068// CHECK: RelocationCount: 069// CHECK: LineNumberCount: 070// CHECK: Characteristics [ (0xC0300040)71// CHECK: IMAGE_SCN_ALIGN_4BYTES72// CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA73// CHECK: IMAGE_SCN_MEM_READ74// CHECK: IMAGE_SCN_MEM_WRITE75// CHECK: ]76// CHECK: Relocations [77// CHECK: ]78// CHECK: SectionData (79// CHECK: 0000: 48656C6C 6F20576F 726C6400 |Hello World.|80// CHECK: )81// CHECK: }82// CHECK: ]83// CHECK: Symbols [84// CHECK: Symbol {85// CHECK: Name: .text86// CHECK: Value: 087// CHECK: Section: .text88// CHECK: BaseType: Null89// CHECK: ComplexType: Null90// CHECK: StorageClass: Static91// CHECK: AuxSymbolCount: 192// CHECK: AuxSectionDef {93// CHECK: Length: [[TextSize]]94// CHECK: RelocationCount: 295// CHECK: LineNumberCount: 096// CHECK: Checksum: 0x8E1B6D2097// CHECK: Number: [[TextNum]]98// CHECK: Selection: 0x099// CHECK: }100// CHECK: }101// CHECK: Symbol {102// CHECK: Name: .data103// CHECK: Value: 0104// CHECK: Section: .data105// CHECK: BaseType: Null106// CHECK: ComplexType: Null107// CHECK: StorageClass: Static108// CHECK: AuxSymbolCount: 1109// CHECK: AuxSectionDef {110// CHECK: Length: [[DataSize]]111// CHECK: RelocationCount: 0112// CHECK: LineNumberCount: 0113// CHECK: Checksum: 0x2B95CA92114// CHECK: Number: [[DataNum]]115// CHECK: Selection: 0x0116// CHECK: }117// CHECK: }118// CHECK: Symbol {119// CHECK: Name: _main120// CHECK: Value: 0121// CHECK: Section: .text122// CHECK: BaseType: Null123// CHECK: ComplexType: Function124// CHECK: StorageClass: External125// CHECK: AuxSymbolCount: 0126// CHECK: }127// CHECK: Symbol {128// CHECK: Name: _printf129// CHECK: Value: 0130// CHECK: Section: IMAGE_SYM_UNDEFINED (0)131// CHECK: BaseType: Null132// CHECK: ComplexType: Null133// CHECK: StorageClass: External134// CHECK: AuxSymbolCount: 0135// CHECK: }136// CHECK: ]137