1 // The purpose of this test is to see if the COFF object writer is emitting the
2 // proper relocations for multiple pieces of data in a single data fragment.
4 // RUN: llvm-mc -filetype=obj -triple i686-pc-win32 %s | llvm-readobj -h -s -sr -sd -t | FileCheck %s
35 .asciz "I'm The Last Line."
38 // CHECK: Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
39 // CHECK: SectionCount: 2
40 // CHECK: TimeDateStamp: {{[0-9]+}}
41 // CHECK: PointerToSymbolTable: 0x{{[0-9A-F]+}}
42 // CHECK: SymbolCount: 7
43 // CHECK: OptionalHeaderSize: 0
44 // CHECK: Characteristics [ (0x0)
51 // CHECK: VirtualSize: 0
52 // CHECK: VirtualAddress: 0
53 // CHECK: RawDataSize: {{[0-9]+}}
54 // CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
55 // CHECK: PointerToRelocations: 0x{{[0-9A-F]+}}
56 // CHECK: PointerToLineNumbers: 0x0
57 // CHECK: RelocationCount: 6
58 // CHECK: LineNumberCount: 0
59 // CHECK: Characteristics [ (0x60500020)
60 // CHECK: IMAGE_SCN_ALIGN_16BYTES
61 // CHECK: IMAGE_SCN_CNT_CODE
62 // CHECK: IMAGE_SCN_MEM_EXECUTE
63 // CHECK: IMAGE_SCN_MEM_READ
65 // CHECK: Relocations [
66 // CHECK: 0x6 IMAGE_REL_I386_DIR32 .data
67 // CHECK: 0xB IMAGE_REL_I386_REL32 _printf
68 // CHECK: 0x12 IMAGE_REL_I386_DIR32 .data
69 // CHECK: 0x17 IMAGE_REL_I386_REL32 _puts
70 // CHECK: 0x1E IMAGE_REL_I386_DIR32 .data
71 // CHECK: 0x23 IMAGE_REL_I386_REL32 _puts
73 // CHECK: SectionData (
74 // CHECK: 0000: 83EC04C7 04240000 0000E800 000000C7 |.....$..........|
75 // CHECK: 0010: 04240700 0000E800 000000C7 04241000 |.$...........$..|
76 // CHECK: 0020: 0000E800 00000031 C083C404 C3 |.......1.....|
82 // CHECK: VirtualSize: 0
83 // CHECK: VirtualAddress: 0
84 // CHECK: RawDataSize: {{[0-9]+}}
85 // CHECK: PointerToRawData: 0x{{[0-9A-F]+}}
86 // CHECK: PointerToRelocations: 0x0
87 // CHECK: PointerToLineNumbers: 0x0
88 // CHECK: RelocationCount: 0
89 // CHECK: LineNumberCount: 0
90 // CHECK: Characteristics [ (0xC0500040)
91 // CHECK: IMAGE_SCN_ALIGN_16BYTES
92 // CHECK: IMAGE_SCN_CNT_INITIALIZED_DATA
93 // CHECK: IMAGE_SCN_MEM_READ
94 // CHECK: IMAGE_SCN_MEM_WRITE
95 // CHECK: Relocations [
97 // CHECK: SectionData (
98 // CHECK: 0000: 48656C6C 6F200057 6F726C64 21000000 |Hello .World!...|
99 // CHECK: 0010: 49276D20 54686520 4C617374 204C696E |I'm The Last Lin|
100 // CHECK: 0020: 652E00 |e..|
106 // CHECK: Name: .text
108 // CHECK: Section: .text
109 // CHECK: BaseType: Null
110 // CHECK: ComplexType: Null
111 // CHECK: StorageClass: Static
112 // CHECK: AuxSymbolCount: 1
113 // CHECK: AuxSectionDef {
115 // CHECK: RelocationCount: 6
116 // CHECK: LineNumberCount: 0
117 // CHECK: Checksum: 0x0
119 // CHECK: Selection: 0x0
120 // CHECK: Unused: (00 00 00)
124 // CHECK: Name: .data
126 // CHECK: Section: .data
127 // CHECK: BaseType: Null
128 // CHECK: ComplexType: Null
129 // CHECK: StorageClass: Static
130 // CHECK: AuxSymbolCount: 1
131 // CHECK: AuxSectionDef {
133 // CHECK: RelocationCount: 0
134 // CHECK: LineNumberCount: 0
135 // CHECK: Checksum: 0x0
137 // CHECK: Selection: 0x0
138 // CHECK: Unused: (00 00 00)
142 // CHECK: Name: _main
144 // CHECK: Section: .text
145 // CHECK: BaseType: Null
146 // CHECK: ComplexType: Function
147 // CHECK: StorageClass: External
148 // CHECK: AuxSymbolCount: 0
151 // CHECK: Name: _printf
153 // CHECK: Section: (0)
154 // CHECK: BaseType: Null
155 // CHECK: ComplexType: Null
156 // CHECK: StorageClass: External
157 // CHECK: AuxSymbolCount: 0
160 // CHECK: Name: _puts
162 // CHECK: Section: (0)
163 // CHECK: BaseType: Null
164 // CHECK: ComplexType: Null
165 // CHECK: StorageClass: External
166 // CHECK: AuxSymbolCount: 0