gn build: Merge r374476
[llvm-complete.git] / test / MC / COFF / basic-coff-64.s
blob5c44b605fe3af3a827f2eb3b3b3f1e88b9722f63
1 // This test checks that the COFF object emitter works for the most basic
2 // programs.
4 // RUN: llvm-mc -filetype=obj -triple x86_64-pc-win32 %s | llvm-readobj -h -S --sr --sd --symbols | FileCheck %s
6 .def _main;
7 .scl 2;
8 .type 32;
9 .endef
10 .text
11 .globl _main
12 .align 16, 0x90
13 _main: # @main
14 # %bb.0: # %entry
15 subl $4, %esp
16 movl $.L_.str, (%esp)
17 call _printf
18 xorl %eax, %eax
19 addl $4, %esp
20 ret
22 .data
23 .L_.str: # @.str
24 .asciz "Hello World"
26 // CHECK: ImageFileHeader {
27 // CHECK: Machine: IMAGE_FILE_MACHINE_AMD64
28 // CHECK: SectionCount: 3
29 // CHECK: TimeDateStamp: {{[0-9]+}}
30 // CHECK: PointerToSymbolTable: 0x{{[0-9A-F]+}}
31 // CHECK: SymbolCount: 8
32 // CHECK: OptionalHeaderSize: 0
33 // CHECK: Characteristics [ (0x0)
34 // CHECK: ]
35 // CHECK: }
36 // CHECK: Sections [
37 // CHECK: Section {
38 // CHECK: Number: [[TextNum:[0-9]+]]
39 // CHECK: Name: .text
40 // CHECK: VirtualSize: 0
41 // CHECK: VirtualAddress: 0
42 // CHECK: RawDataSize: [[TextSize:[0-9]+]]
43 // CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
44 // CHECK: PointerToRelocations: 0x{{[0-9A-F]+}}
45 // CHECK: PointerToLineNumbers: 0x0
46 // CHECK: RelocationCount: 2
47 // CHECK: LineNumberCount: 0
48 // CHECK: Characteristics [ (0x60500020)
49 // CHECK: IMAGE_SCN_ALIGN_16BYTES
50 // CHECK: IMAGE_SCN_CNT_CODE
51 // CHECK: IMAGE_SCN_MEM_EXECUTE
52 // CHECK: IMAGE_SCN_MEM_READ
53 // CHECK: ]
54 // CHECK: Relocations [
55 // CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_AMD64_ADDR32 .data
56 // CHECK: 0x{{[0-9A-F]+}} IMAGE_REL_AMD64_REL32 _printf
57 // CHECK: ]
58 // CHECK: }
59 // CHECK: Section {
60 // CHECK: Number: [[DataNum:[0-9]+]]
61 // CHECK: Name: .data
62 // CHECK: VirtualSize: 0
63 // CHECK: VirtualAddress: 0
64 // CHECK: RawDataSize: [[DataSize:[0-9]+]]
65 // CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
66 // CHECK: PointerToRelocations: 0x0
67 // CHECK: PointerToLineNumbers: 0x0
68 // CHECK: RelocationCount: 0
69 // CHECK: LineNumberCount: 0
70 // CHECK: Characteristics [ (0xC0300040)
71 // CHECK: IMAGE_SCN_ALIGN_4BYTES
72 // CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
73 // CHECK: IMAGE_SCN_MEM_READ
74 // CHECK: IMAGE_SCN_MEM_WRITE
75 // 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: .text
86 // CHECK: Value: 0
87 // CHECK: Section: .text
88 // CHECK: BaseType: Null
89 // CHECK: ComplexType: Null
90 // CHECK: StorageClass: Static
91 // CHECK: AuxSymbolCount: 1
92 // CHECK: AuxSectionDef {
93 // CHECK: Length: [[TextSize]]
94 // CHECK: RelocationCount: 2
95 // CHECK: LineNumberCount: 0
96 // CHECK: Checksum: 0x8E1B6D20
97 // CHECK: Number: [[TextNum]]
98 // CHECK: Selection: 0x0
99 // CHECK: }
100 // CHECK: }
101 // CHECK: Symbol {
102 // CHECK: Name: .data
103 // CHECK: Value: 0
104 // CHECK: Section: .data
105 // CHECK: BaseType: Null
106 // CHECK: ComplexType: Null
107 // CHECK: StorageClass: Static
108 // CHECK: AuxSymbolCount: 1
109 // CHECK: AuxSectionDef {
110 // CHECK: Length: [[DataSize]]
111 // CHECK: RelocationCount: 0
112 // CHECK: LineNumberCount: 0
113 // CHECK: Checksum: 0x2B95CA92
114 // CHECK: Number: [[DataNum]]
115 // CHECK: Selection: 0x0
116 // CHECK: }
117 // CHECK: }
118 // CHECK: Symbol {
119 // CHECK: Name: _main
120 // CHECK: Value: 0
121 // CHECK: Section: .text
122 // CHECK: BaseType: Null
123 // CHECK: ComplexType: Function
124 // CHECK: StorageClass: External
125 // CHECK: AuxSymbolCount: 0
126 // CHECK: }
127 // CHECK: Symbol {
128 // CHECK: Name: _printf
129 // CHECK: Value: 0
130 // CHECK: Section: IMAGE_SYM_UNDEFINED (0)
131 // CHECK: BaseType: Null
132 // CHECK: ComplexType: Null
133 // CHECK: StorageClass: External
134 // CHECK: AuxSymbolCount: 0
135 // CHECK: }
136 // CHECK: ]