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
--symbols | FileCheck
%s
35 .asciz "I'm The Last Line."
38 // CHECK
: Machine
: IMAGE_FILE_MACHINE_I386
(0x14C)
39 // CHECK
: SectionCount
: 3
40 // CHECK
: TimeDateStamp
: {{[0-9]+}}
41 // CHECK
: PointerToSymbolTable
: 0x
{{[0-9A-F
]+}}
42 // CHECK
: SymbolCount
: 9
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: 0xDED1DC2
119 // CHECK: Selection: 0x0
123 // CHECK: Name: .data
125 // CHECK: Section: .data
126 // CHECK: BaseType: Null
127 // CHECK: ComplexType: Null
128 // CHECK: StorageClass: Static
129 // CHECK: AuxSymbolCount: 1
130 // CHECK: AuxSectionDef {
132 // CHECK: RelocationCount: 0
133 // CHECK: LineNumberCount: 0
134 // CHECK: Checksum: 0xB0A4C21
136 // CHECK: Selection: 0x0
140 // CHECK: Name: _main
142 // CHECK: Section: .text
143 // CHECK: BaseType: Null
144 // CHECK: ComplexType: Function
145 // CHECK: StorageClass: External
146 // CHECK: AuxSymbolCount: 0
149 // CHECK: Name: _printf
151 // CHECK: Section: IMAGE_SYM_UNDEFINED (0)
152 // CHECK: BaseType: Null
153 // CHECK: ComplexType: Null
154 // CHECK: StorageClass: External
155 // CHECK: AuxSymbolCount: 0
158 // CHECK: Name: _puts
160 // CHECK: Section: IMAGE_SYM_UNDEFINED (0)
161 // CHECK: BaseType: Null
162 // CHECK: ComplexType: Null
163 // CHECK: StorageClass: External
164 // CHECK: AuxSymbolCount: 0