]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/COFF/symtab.test
Vendor import of lld trunk r338150:
[FreeBSD/FreeBSD.git] / test / COFF / symtab.test
1 # RUN: yaml2obj < %s > %t.obj
2 # RUN: lld-link /debug:dwarf /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib
3 # RUN: llvm-readobj -symbols %t.exe | FileCheck %s
4 # RUN: lld-link /debug:dwarf /opt:noref /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib
5 # RUN: llvm-readobj -symbols %t.exe | FileCheck %s
6 # RUN: lld-link /debug:symtab /opt:noref /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib
7 # RUN: llvm-readobj -symbols %t.exe | FileCheck %s
8
9 # RUN: lld-link /debug /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib
10 # RUN: llvm-readobj -symbols %t.exe | FileCheck -check-prefix=NO %s
11
12 # CHECK:      Symbols [
13 # CHECK-NEXT:   Symbol {
14 # CHECK-NEXT:     Name: .text
15 # CHECK-NEXT:     Value: 0
16 # CHECK-NEXT:     Section: .text (1)
17 # CHECK-NEXT:     BaseType: Null (0x0)
18 # CHECK-NEXT:     ComplexType: Null (0x0)
19 # CHECK-NEXT:     StorageClass: Static (0x3)
20 # CHECK-NEXT:     AuxSymbolCount: 0
21 # CHECK-NEXT:   }
22 # CHECK-NEXT:   Symbol {
23 # CHECK-NEXT:     Name: .text2
24 # CHECK-NEXT:     Value: 0
25 # CHECK-NEXT:     Section: .text (1)
26 # CHECK-NEXT:     BaseType: Null (0x0)
27 # CHECK-NEXT:     ComplexType: Null (0x0)
28 # CHECK-NEXT:     StorageClass: Static (0x3)
29 # CHECK-NEXT:     AuxSymbolCount: 0
30 # CHECK-NEXT:   }
31 # CHECK-NEXT:   Symbol {
32 # CHECK-NEXT:     Name: .data
33 # CHECK-NEXT:     Value: 0
34 # CHECK-NEXT:     Section: .data (3)
35 # CHECK-NEXT:     BaseType: Null (0x0)
36 # CHECK-NEXT:     ComplexType: Null (0x0)
37 # CHECK-NEXT:     StorageClass: Static (0x3)
38 # CHECK-NEXT:     AuxSymbolCount: 0
39 # CHECK-NEXT:   }
40 # CHECK-NEXT:   Symbol {
41 # CHECK-NEXT:     Name: MessageBoxA
42 # CHECK-NEXT:     Value: 80
43 # CHECK-NEXT:     Section: .text (1)
44 # CHECK-NEXT:     BaseType: Null (0x0)
45 # CHECK-NEXT:     ComplexType: Null (0x0)
46 # CHECK-NEXT:     StorageClass: External (0x2)
47 # CHECK-NEXT:     AuxSymbolCount: 0
48 # CHECK-NEXT:   }
49 # CHECK-NEXT:   Symbol {
50 # CHECK-NEXT:     Name: ExitProcess
51 # CHECK-NEXT:     Value: 64
52 # CHECK-NEXT:     Section: .text (1)
53 # CHECK-NEXT:     BaseType: Null (0x0)
54 # CHECK-NEXT:     ComplexType: Null (0x0)
55 # CHECK-NEXT:     StorageClass: External (0x2)
56 # CHECK-NEXT:     AuxSymbolCount: 0
57 # CHECK-NEXT:   }
58 # CHECK-NEXT:   Symbol {
59 # CHECK-NEXT:     Name: message
60 # CHECK-NEXT:     Value: 6
61 # CHECK-NEXT:     Section: .text2
62 # CHECK-NEXT:     BaseType: Null (0x0)
63 # CHECK-NEXT:     ComplexType: Null (0x0)
64 # CHECK-NEXT:     StorageClass: Static (0x3)
65 # CHECK-NEXT:     AuxSymbolCount: 0
66 # CHECK-NEXT:   }
67 # CHECK-NEXT:   Symbol {
68 # CHECK-NEXT:     Name: main
69 # CHECK-NEXT:     Value: 0
70 # CHECK-NEXT:     Section: .text (1)
71 # CHECK-NEXT:     BaseType: Null (0x0)
72 # CHECK-NEXT:     ComplexType: Null (0x0)
73 # CHECK-NEXT:     StorageClass: External (0x2)
74 # CHECK-NEXT:     AuxSymbolCount: 0
75 # CHECK-NEXT:   }
76 # CHECK-NEXT:   Symbol {
77 # CHECK-NEXT:     Name: caption
78 # CHECK-NEXT:     Value: 0
79 # CHECK-NEXT:     Section: .text2
80 # CHECK-NEXT:     BaseType: Null (0x0)
81 # CHECK-NEXT:     ComplexType: Null (0x0)
82 # CHECK-NEXT:     StorageClass: Static (0x3)
83 # CHECK-NEXT:     AuxSymbolCount: 0
84 # CHECK-NEXT:   }
85 # CHECK-NEXT:   Symbol {
86 # CHECK-NEXT:     Name: abs_symbol
87 # CHECK-NEXT:     Value: 2662186735
88 # CHECK-NEXT:     Section: IMAGE_SYM_ABSOLUTE (-1)
89 # CHECK-NEXT:     BaseType: Null (0x0)
90 # CHECK-NEXT:     ComplexType: Null (0x0)
91 # CHECK-NEXT:     StorageClass: External (0x2)
92 # CHECK-NEXT:     AuxSymbolCount: 0
93 # CHECK-NEXT:   }
94 # CHECK-NEXT: ]
95
96 # NO: Symbols [
97
98 --- !COFF
99 header:
100   Machine:         IMAGE_FILE_MACHINE_AMD64
101   Characteristics: []
102 sections:
103   - Name:            .text
104     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
105     Alignment:       4096
106     SectionData:     B800000000000000005068000000000000000068000000000000000050E8000000000000000050E8000000000000000050E80000000000000000
107     Relocations:
108       - VirtualAddress:  0
109         SymbolName:      abs_symbol
110         Type:            IMAGE_REL_AMD64_ADDR64
111       - VirtualAddress:  7
112         SymbolName:      caption
113         Type:            IMAGE_REL_AMD64_ADDR64
114       - VirtualAddress:  12
115         SymbolName:      message
116         Type:            IMAGE_REL_AMD64_ADDR64
117       - VirtualAddress:  18
118         SymbolName:      MessageBoxA
119         Type:            IMAGE_REL_AMD64_REL32
120       - VirtualAddress:  24
121         SymbolName:      ExitProcess
122         Type:            IMAGE_REL_AMD64_REL32
123       - VirtualAddress:  30
124         SymbolName:      __ImageBase
125         Type:            IMAGE_REL_AMD64_ADDR64
126   - Name:            .text2
127     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
128     Alignment:       4096
129     SectionData:     B800000000000000005068000000000000000068000000000000000050E8000000000000000050E8000000000000000050E80000000000000000
130     Relocations:
131       - VirtualAddress:  0
132         SymbolName:      abs_symbol
133         Type:            IMAGE_REL_AMD64_ADDR64
134       - VirtualAddress:  7
135         SymbolName:      caption
136         Type:            IMAGE_REL_AMD64_ADDR64
137       - VirtualAddress:  12
138         SymbolName:      message
139         Type:            IMAGE_REL_AMD64_ADDR64
140       - VirtualAddress:  18
141         SymbolName:      MessageBoxA
142         Type:            IMAGE_REL_AMD64_REL32
143       - VirtualAddress:  24
144         SymbolName:      ExitProcess
145         Type:            IMAGE_REL_AMD64_REL32
146       - VirtualAddress:  30
147         SymbolName:      __ImageBase
148         Type:            IMAGE_REL_AMD64_ADDR64
149   - Name:            .data
150     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
151     Alignment:       4
152     SectionData:     48656C6C6F0048656C6C6F20576F726C6400
153 symbols:
154   - Name:            "@comp.id"
155     Value:           10394907
156     SectionNumber:   65535
157     SimpleType:      IMAGE_SYM_TYPE_NULL
158     ComplexType:     IMAGE_SYM_DTYPE_NULL
159     StorageClass:    IMAGE_SYM_CLASS_STATIC
160   - Name:            .text
161     Value:           0
162     SectionNumber:   1
163     SimpleType:      IMAGE_SYM_TYPE_NULL
164     ComplexType:     IMAGE_SYM_DTYPE_NULL
165     StorageClass:    IMAGE_SYM_CLASS_STATIC
166     SectionDefinition:
167       Length:          28
168       NumberOfRelocations: 6
169       NumberOfLinenumbers: 0
170       CheckSum:        0
171       Number:          0
172   - Name:            .text2
173     Value:           0
174     SectionNumber:   1
175     SimpleType:      IMAGE_SYM_TYPE_NULL
176     ComplexType:     IMAGE_SYM_DTYPE_NULL
177     StorageClass:    IMAGE_SYM_CLASS_STATIC
178     SectionDefinition:
179       Length:          28
180       NumberOfRelocations: 6
181       NumberOfLinenumbers: 0
182       CheckSum:        0
183       Number:          0
184   - Name:            .data
185     Value:           0
186     SectionNumber:   3
187     SimpleType:      IMAGE_SYM_TYPE_NULL
188     ComplexType:     IMAGE_SYM_DTYPE_NULL
189     StorageClass:    IMAGE_SYM_CLASS_STATIC
190     SectionDefinition:
191       Length:          18
192       NumberOfRelocations: 0
193       NumberOfLinenumbers: 0
194       CheckSum:        0
195       Number:          0
196   - Name:            MessageBoxA
197     Value:           0
198     SectionNumber:   0
199     SimpleType:      IMAGE_SYM_TYPE_NULL
200     ComplexType:     IMAGE_SYM_DTYPE_NULL
201     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
202   - Name:            ExitProcess
203     Value:           0
204     SectionNumber:   0
205     SimpleType:      IMAGE_SYM_TYPE_NULL
206     ComplexType:     IMAGE_SYM_DTYPE_NULL
207     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
208   - Name:            message
209     Value:           6
210     SectionNumber:   2
211     SimpleType:      IMAGE_SYM_TYPE_NULL
212     ComplexType:     IMAGE_SYM_DTYPE_NULL
213     StorageClass:    IMAGE_SYM_CLASS_STATIC
214   - Name:            main
215     Value:           0
216     SectionNumber:   1
217     SimpleType:      IMAGE_SYM_TYPE_NULL
218     ComplexType:     IMAGE_SYM_DTYPE_NULL
219     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
220   - Name:            caption
221     Value:           0
222     SectionNumber:   2
223     SimpleType:      IMAGE_SYM_TYPE_NULL
224     ComplexType:     IMAGE_SYM_DTYPE_NULL
225     StorageClass:    IMAGE_SYM_CLASS_STATIC
226   - Name:            abs_symbol
227     Value:           0xDEADBEEF
228     SectionNumber:   -1
229     SimpleType:      IMAGE_SYM_TYPE_NULL
230     ComplexType:     IMAGE_SYM_DTYPE_NULL
231     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
232   - Name:            __ImageBase
233     Value:           0
234     SectionNumber:   0
235     SimpleType:      IMAGE_SYM_TYPE_NULL
236     ComplexType:     IMAGE_SYM_DTYPE_NULL
237     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
238 ...