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