obj2yaml: Use the correct relocation type for different machine types
[oota-llvm.git] / test / Object / obj2yaml.test
1 RUN: obj2yaml %p/Inputs/trivial-object-test.coff-i386 | FileCheck %s --check-prefix COFF-I386
2 RUN: obj2yaml %p/Inputs/trivial-object-test.coff-x86-64 | FileCheck %s --check-prefix COFF-X86-64
3
4
5 COFF-I386: header:
6 COFF-I386-NEXT:  Machine: IMAGE_FILE_MACHINE_I386
7
8 COFF-I386: sections:
9 COFF-I386-NEXT:  - Name: .text
10 COFF-I386-NEXT:    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
11 COFF-I386-NEXT:    Alignment: 16
12 COFF-I386-NEXT:    SectionData:  83EC0CC744240800000000C7042400000000E800000000E8000000008B44240883C40CC3
13
14 COFF-I386:    Relocations:
15 COFF-I386-NEXT:      - VirtualAddress: 14
16 COFF-I386-NEXT:        SymbolName: L_.str
17 COFF-I386-NEXT:        Type: IMAGE_REL_I386_DIR32
18
19 COFF-I386:           - VirtualAddress: 19
20 COFF-I386-NEXT:        SymbolName: _puts
21 COFF-I386-NEXT:        Type: IMAGE_REL_I386_REL32
22
23 COFF-I386:           - VirtualAddress: 24
24 COFF-I386-NEXT:        SymbolName: _SomeOtherFunction
25 COFF-I386-NEXT:        Type: IMAGE_REL_I386_REL32
26
27 COFF-I386:       - Name: .data
28 COFF-I386-NEXT:    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
29 COFF-I386-NEXT:    Alignment: 1
30 COFF-I386-NEXT:    SectionData: 48656C6C6F20576F726C642100
31
32 COFF-I386: symbols:
33 COFF-I386-NEXT:  - Name: .text
34 COFF-I386-NEXT:    Value: 0
35 COFF-I386-NEXT:    SectionNumber: 1
36 COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL
37 COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL
38 COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_STATIC
39 COFF-I386-NEXT:    SectionDefinition:
40 COFF-I386-NEXT:      Length:          36
41 COFF-I386-NEXT:      NumberOfRelocations: 3
42 COFF-I386-NEXT:      NumberOfLinenumbers: 0
43 COFF-I386-NEXT:      CheckSum:        0
44 COFF-I386-NEXT:      Number:          1
45
46 COFF-I386:       - Name: .data
47 COFF-I386-NEXT:    Value: 0
48 COFF-I386-NEXT:    SectionNumber: 2
49 COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL
50 COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL
51 COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_STATIC
52 COFF-I386-NEXT:    SectionDefinition:
53 COFF-I386-NEXT:      Length:          13
54 COFF-I386-NEXT:      NumberOfRelocations: 0
55 COFF-I386-NEXT:      NumberOfLinenumbers: 0
56 COFF-I386-NEXT:      CheckSum:        0
57 COFF-I386-NEXT:      Number:          2
58
59 COFF-I386:       - Name: _main
60 COFF-I386-NEXT:    Value: 0
61 COFF-I386-NEXT:    SectionNumber: 1
62 COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL
63 COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_FUNCTION
64 COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_EXTERNAL
65
66 COFF-I386:       - Name: L_.str
67 COFF-I386-NEXT:    Value: 0
68 COFF-I386-NEXT:    SectionNumber: 2
69 COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL
70 COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL
71 COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_STATIC
72
73 COFF-I386:       - Name: _puts
74 COFF-I386-NEXT:    Value: 0
75 COFF-I386-NEXT:    SectionNumber: 0
76 COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL
77 COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL
78 COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_EXTERNAL
79
80 COFF-I386:       - Name: _SomeOtherFunction
81 COFF-I386-NEXT:    Value: 0
82 COFF-I386-NEXT:    SectionNumber: 0
83 COFF-I386-NEXT:    SimpleType: IMAGE_SYM_TYPE_NULL
84 COFF-I386-NEXT:    ComplexType: IMAGE_SYM_DTYPE_NULL
85 COFF-I386-NEXT:    StorageClass: IMAGE_SYM_CLASS_EXTERNAL
86
87
88 COFF-X86-64: header:
89 COFF-X86-64-NEXT:  Machine: IMAGE_FILE_MACHINE_AMD64
90
91 COFF-X86-64: sections:
92 COFF-X86-64-NEXT:   - Name: .text
93 COFF-X86-64-NEXT:     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
94 COFF-X86-64-NEXT:     Alignment: 16
95 COFF-X86-64-NEXT:     SectionData: 4883EC28C744242400000000488D0D00000000E800000000E8000000008B4424244883C428C3
96
97 COFF-X86-64:     Relocations:
98 COFF-X86-64-NEXT:       - VirtualAddress: 15
99 COFF-X86-64-NEXT:         SymbolName: L.str
100 COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_REL32
101
102 COFF-X86-64:            - VirtualAddress: 20
103 COFF-X86-64-NEXT:         SymbolName: puts
104 COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_REL32
105
106 COFF-X86-64:            - VirtualAddress: 25
107 COFF-X86-64-NEXT:         SymbolName: SomeOtherFunction
108 COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_REL32
109
110 COFF-X86-64:        - Name: .data
111 COFF-X86-64-NEXT:     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
112 COFF-X86-64-NEXT:     Alignment: 1
113 COFF-X86-64-NEXT:     SectionData: 48656C6C6F20576F726C642100
114
115 COFF-X86-64:        - Name: '.CRT$XCU'
116 COFF-X86-64-NEXT:     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
117 COFF-X86-64-NEXT:     Alignment: 8
118 COFF-X86-64-NEXT:     SectionData:  0000000000000000
119
120 COFF-X86-64:     Relocations:
121 COFF-X86-64-NEXT:       - VirtualAddress: 0
122 COFF-X86-64-NEXT:         SymbolName: '??__Ex@@YAXXZ'
123 COFF-X86-64-NEXT:         Type: IMAGE_REL_AMD64_ADDR64
124
125 COFF-X86-64: symbols:
126 COFF-X86-64-NEXT:   - Name: .text
127 COFF-X86-64-NEXT:     Value: 0
128 COFF-X86-64-NEXT:     SectionNumber: 1
129 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
130 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL
131 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC
132 COFF-X86-64-NEXT:    SectionDefinition:
133 COFF-X86-64-NEXT:      Length:          38
134 COFF-X86-64-NEXT:      NumberOfRelocations: 3
135 COFF-X86-64-NEXT:      NumberOfLinenumbers: 0
136 COFF-X86-64-NEXT:      CheckSum:        0
137 COFF-X86-64-NEXT:      Number:          1
138
139 COFF-X86-64:        - Name: .data
140 COFF-X86-64-NEXT:     Value: 0
141 COFF-X86-64-NEXT:     SectionNumber: 2
142 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
143 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL
144 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC
145 COFF-X86-64-NEXT:    SectionDefinition:
146 COFF-X86-64-NEXT:      Length:          13
147 COFF-X86-64-NEXT:      NumberOfRelocations: 0
148 COFF-X86-64-NEXT:      NumberOfLinenumbers: 0
149 COFF-X86-64-NEXT:      CheckSum:        0
150 COFF-X86-64-NEXT:      Number:          2
151
152 COFF-X86-64:        - Name: main
153 COFF-X86-64-NEXT:     Value: 0
154 COFF-X86-64-NEXT:     SectionNumber: 1
155 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
156 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_FUNCTION
157 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_EXTERNAL
158
159 COFF-X86-64:        - Name: L.str
160 COFF-X86-64-NEXT:     Value: 0
161 COFF-X86-64-NEXT:     SectionNumber: 2
162 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
163 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL
164 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC
165
166 COFF-X86-64:        - Name: puts
167 COFF-X86-64-NEXT:     Value: 0
168 COFF-X86-64-NEXT:     SectionNumber: 0
169 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
170 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL
171 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_EXTERNAL
172
173 COFF-X86-64:        - Name: SomeOtherFunction
174 COFF-X86-64-NEXT:     Value: 0
175 COFF-X86-64-NEXT:     SectionNumber: 0
176 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
177 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_NULL
178 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_EXTERNAL
179
180 COFF-X86-64:        - Name: '??__Ex@@YAXXZ'
181 COFF-X86-64-NEXT:     Value: 0
182 COFF-X86-64-NEXT:     SectionNumber: 3
183 COFF-X86-64-NEXT:     SimpleType: IMAGE_SYM_TYPE_NULL
184 COFF-X86-64-NEXT:     ComplexType: IMAGE_SYM_DTYPE_FUNCTION
185 COFF-X86-64-NEXT:     StorageClass: IMAGE_SYM_CLASS_STATIC