[ELF] relocateNonAlloc: clean up workaround code
[llvm-project.git] / lld / test / COFF / pdb-framedata.yaml
blobfad042f392bb356beaaa41194c61636dc2420d2f
1 # // Compile with clang-cl -m32 /Z7 /GS- /c t.obj pdb-framedata.cpp
3 # int func(int x, int y) {
4 #  return x + y;
5 # }
7 # int main(int argc, char **argv) {
8 #   return func(argc, argc+1);
9 # }
11 # RUN: yaml2obj %s -o %t.obj
12 # RUN: lld-link %t.obj -debug -entry:main -nodefaultlib -debug -out:%t.exe -pdb:%t.pdb
13 # RUN: llvm-pdbutil dump -fpo %t.pdb | FileCheck %s
15 # CHECK:                         New FPO Data
16 # CHECK-NEXT: ============================================================
17 # CHECK-NEXT:   RVA    | Code | Locals | Params | Stack | Prolog | Saved Regs | Has SEH | Has C++EH | Start | Program
18 # CHECK-NEXT: 00001000 |   31 |      0 |      8 |     0 |      6 |          0 |   false |     false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =
19 # CHECK-NEXT: 00001001 |   30 |      0 |      8 |     0 |      5 |          4 |   false |     false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
20 # CHECK-NEXT: 00001003 |   28 |      0 |      8 |     0 |      3 |          4 |   false |     false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
21 # CHECK-NEXT: 00001020 |   53 |      0 |      8 |     0 |      7 |          0 |   false |     false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + =
22 # CHECK-NEXT: 00001021 |   52 |      0 |      8 |     0 |      6 |          4 |   false |     false | false | $T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
23 # CHECK-NEXT: 00001023 |   50 |      0 |      8 |     0 |      4 |          4 |   false |     false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ =
24 # CHECK-NEXT: 00001024 |   49 |      0 |      8 |     0 |      3 |          8 |   false |     false | false | $T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ =
27 --- !COFF
28 header:
29   Machine:         IMAGE_FILE_MACHINE_I386
30   Characteristics: [  ]
31 sections:
32   - Name:            .text
33     Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
34     Alignment:       16
35     SectionData:     5589E583EC088B450C8B4D088B550803550C8945FC89D0894DF883C4085DC3905589E55683EC148B450C8B4D08C745F8000000008B550883C2018B7508893424895424048945F4894DF0E80000000083C4145E5DC3
36     Relocations:
37       - VirtualAddress:  75
38         SymbolName:      '?func@@YAHHH@Z'
39         Type:            IMAGE_REL_I386_REL32
40   - Name:            .data
41     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
42     Alignment:       4
43     SectionData:     ''
44   - Name:            .bss
45     Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]
46     Alignment:       4
47     SectionData:     ''
48   - Name:            .drectve
49     Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
50     Alignment:       1
51     SectionData:     202F44454641554C544C49423A6C6962636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C6962
52   - Name:            '.debug$S'
53     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
54     Alignment:       4
55     Subsections:
56       - !Symbols
57         Records:
58           - Kind:            S_COMPILE3
59             Compile3Sym:
60               Flags:           [  ]
61               Machine:         Pentium3
62               FrontendMajor:   8
63               FrontendMinor:   0
64               FrontendBuild:   0
65               FrontendQFE:     0
66               BackendMajor:    8000
67               BackendMinor:    0
68               BackendBuild:    0
69               BackendQFE:      0
70               Version:         'clang version 8.0.0 '
71       - !FrameData
72         Frames:
73           - CodeSize:        31
74             FrameFunc:       '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '
75             LocalSize:       0
76             MaxStackSize:    0
77             ParamsSize:      8
78             PrologSize:      6
79             RvaStart:        0
80             SavedRegsSize:   0
81           - CodeSize:        30
82             FrameFunc:       '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
83             LocalSize:       0
84             MaxStackSize:    0
85             ParamsSize:      8
86             PrologSize:      5
87             RvaStart:        1
88             SavedRegsSize:   4
89           - CodeSize:        28
90             FrameFunc:       '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
91             LocalSize:       0
92             MaxStackSize:    0
93             ParamsSize:      8
94             PrologSize:      3
95             RvaStart:        3
96             SavedRegsSize:   4
97       - !Symbols
98         Records:
99           - Kind:            S_GPROC32_ID
100             ProcSym:
101               CodeSize:        31
102               DbgStart:        0
103               DbgEnd:          0
104               FunctionType:    4098
105               Flags:           [  ]
106               DisplayName:     func
107           - Kind:            S_LOCAL
108             LocalSym:
109               Type:            116
110               Flags:           [ IsParameter ]
111               VarName:         x
112           - Kind:            S_DEFRANGE_REGISTER_REL
113             DefRangeRegisterRelSym:
114               Register:        22
115               Flags:           0
116               BasePointerOffset: 8
117               Range:
118                 OffsetStart:     12
119                 ISectStart:      0
120                 Range:           19
121               Gaps:
122           - Kind:            S_LOCAL
123             LocalSym:
124               Type:            116
125               Flags:           [ IsParameter ]
126               VarName:         y
127           - Kind:            S_DEFRANGE_REGISTER_REL
128             DefRangeRegisterRelSym:
129               Register:        22
130               Flags:           0
131               BasePointerOffset: 12
132               Range:
133                 OffsetStart:     12
134                 ISectStart:      0
135                 Range:           19
136               Gaps:
137           - Kind:            S_PROC_ID_END
138             ScopeEndSym:
139       - !Lines
140         CodeSize:        31
141         Flags:           [  ]
142         RelocOffset:     0
143         RelocSegment:    0
144         Blocks:
145           - FileName:        'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
146             Lines:
147               - Offset:          0
148                 LineStart:       3
149                 IsStatement:     false
150                 EndDelta:        0
151               - Offset:          12
152                 LineStart:       4
153                 IsStatement:     false
154                 EndDelta:        0
155             Columns:
156       - !FrameData
157         Frames:
158           - CodeSize:        53
159             FrameFunc:       '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '
160             LocalSize:       0
161             MaxStackSize:    0
162             ParamsSize:      8
163             PrologSize:      7
164             RvaStart:        0
165             SavedRegsSize:   0
166           - CodeSize:        52
167             FrameFunc:       '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
168             LocalSize:       0
169             MaxStackSize:    0
170             ParamsSize:      8
171             PrologSize:      6
172             RvaStart:        1
173             SavedRegsSize:   4
174           - CodeSize:        50
175             FrameFunc:       '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
176             LocalSize:       0
177             MaxStackSize:    0
178             ParamsSize:      8
179             PrologSize:      4
180             RvaStart:        3
181             SavedRegsSize:   4
182           - CodeSize:        49
183             FrameFunc:       '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ = '
184             LocalSize:       0
185             MaxStackSize:    0
186             ParamsSize:      8
187             PrologSize:      3
188             RvaStart:        4
189             SavedRegsSize:   8
190       - !Symbols
191         Records:
192           - Kind:            S_GPROC32_ID
193             ProcSym:
194               CodeSize:        53
195               DbgStart:        0
196               DbgEnd:          0
197               FunctionType:    4102
198               Flags:           [  ]
199               DisplayName:     main
200           - Kind:            S_LOCAL
201             LocalSym:
202               Type:            116
203               Flags:           [ IsParameter ]
204               VarName:         argc
205           - Kind:            S_DEFRANGE_REGISTER_REL
206             DefRangeRegisterRelSym:
207               Register:        22
208               Flags:           0
209               BasePointerOffset: 8
210               Range:
211                 OffsetStart:     52
212                 ISectStart:      0
213                 Range:           33
214               Gaps:
215           - Kind:            S_LOCAL
216             LocalSym:
217               Type:            4099
218               Flags:           [ IsParameter ]
219               VarName:         argv
220           - Kind:            S_DEFRANGE_REGISTER_REL
221             DefRangeRegisterRelSym:
222               Register:        22
223               Flags:           0
224               BasePointerOffset: 12
225               Range:
226                 OffsetStart:     52
227                 ISectStart:      0
228                 Range:           33
229               Gaps:
230           - Kind:            S_PROC_ID_END
231             ScopeEndSym:
232       - !Lines
233         CodeSize:        53
234         Flags:           [  ]
235         RelocOffset:     0
236         RelocSegment:    0
237         Blocks:
238           - FileName:        'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
239             Lines:
240               - Offset:          0
241                 LineStart:       7
242                 IsStatement:     false
243                 EndDelta:        0
244               - Offset:          20
245                 LineStart:       8
246                 IsStatement:     false
247                 EndDelta:        0
248             Columns:
249       - !FileChecksums
250         Checksums:
251           - FileName:        'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
252             Kind:            MD5
253             Checksum:        A611B73E19B77B02646FAAF7CAEB025D
254       - !StringTable
255         Strings:
256           - 'D:\src\llvmbuild\cl\Debug\x64\pdb-framedata.cpp'
257           - '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = '
258           - '$T0 .raSearch = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
259           - '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = '
260           - '$T0 $ebp 4 + = $eip $T0 ^ = $esp $T0 4 + = $ebp $T0 4 - ^ = $esi $T0 8 - ^ = '
261           - ''
262     Relocations:
263       - VirtualAddress:  68
264         SymbolName:      '?func@@YAHHH@Z'
265         Type:            IMAGE_REL_I386_DIR32NB
266       - VirtualAddress:  208
267         SymbolName:      '?func@@YAHHH@Z'
268         Type:            IMAGE_REL_I386_SECREL
269       - VirtualAddress:  212
270         SymbolName:      '?func@@YAHHH@Z'
271         Type:            IMAGE_REL_I386_SECTION
272       - VirtualAddress:  244
273         SymbolName:      .text
274         Type:            IMAGE_REL_I386_SECREL
275       - VirtualAddress:  248
276         SymbolName:      .text
277         Type:            IMAGE_REL_I386_SECTION
278       - VirtualAddress:  276
279         SymbolName:      .text
280         Type:            IMAGE_REL_I386_SECREL
281       - VirtualAddress:  280
282         SymbolName:      .text
283         Type:            IMAGE_REL_I386_SECTION
284       - VirtualAddress:  296
285         SymbolName:      '?func@@YAHHH@Z'
286         Type:            IMAGE_REL_I386_SECREL
287       - VirtualAddress:  300
288         SymbolName:      '?func@@YAHHH@Z'
289         Type:            IMAGE_REL_I386_SECTION
290       - VirtualAddress:  344
291         SymbolName:      _main
292         Type:            IMAGE_REL_I386_DIR32NB
293       - VirtualAddress:  516
294         SymbolName:      _main
295         Type:            IMAGE_REL_I386_SECREL
296       - VirtualAddress:  520
297         SymbolName:      _main
298         Type:            IMAGE_REL_I386_SECTION
299       - VirtualAddress:  555
300         SymbolName:      .text
301         Type:            IMAGE_REL_I386_SECREL
302       - VirtualAddress:  559
303         SymbolName:      .text
304         Type:            IMAGE_REL_I386_SECTION
305       - VirtualAddress:  590
306         SymbolName:      .text
307         Type:            IMAGE_REL_I386_SECREL
308       - VirtualAddress:  594
309         SymbolName:      .text
310         Type:            IMAGE_REL_I386_SECTION
311       - VirtualAddress:  612
312         SymbolName:      _main
313         Type:            IMAGE_REL_I386_SECREL
314       - VirtualAddress:  616
315         SymbolName:      _main
316         Type:            IMAGE_REL_I386_SECTION
317   - Name:            '.debug$T'
318     Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
319     Alignment:       4
320     Types:
321       - Kind:            LF_ARGLIST
322         ArgList:
323           ArgIndices:      [ 116, 116 ]
324       - Kind:            LF_PROCEDURE
325         Procedure:
326           ReturnType:      116
327           CallConv:        NearC
328           Options:         [ None ]
329           ParameterCount:  2
330           ArgumentList:    4096
331       - Kind:            LF_FUNC_ID
332         FuncId:
333           ParentScope:     0
334           FunctionType:    4097
335           Name:            func
336       - Kind:            LF_POINTER
337         Pointer:
338           ReferentType:    1136
339           Attrs:           32778
340       - Kind:            LF_ARGLIST
341         ArgList:
342           ArgIndices:      [ 116, 4099 ]
343       - Kind:            LF_PROCEDURE
344         Procedure:
345           ReturnType:      116
346           CallConv:        NearC
347           Options:         [ None ]
348           ParameterCount:  2
349           ArgumentList:    4100
350       - Kind:            LF_FUNC_ID
351         FuncId:
352           ParentScope:     0
353           FunctionType:    4101
354           Name:            main
355   - Name:            .llvm_addrsig
356     Characteristics: [ IMAGE_SCN_LNK_REMOVE ]
357     Alignment:       1
358     SectionData:     0F
359 symbols:
360   - Name:            .text
361     Value:           0
362     SectionNumber:   1
363     SimpleType:      IMAGE_SYM_TYPE_NULL
364     ComplexType:     IMAGE_SYM_DTYPE_NULL
365     StorageClass:    IMAGE_SYM_CLASS_STATIC
366     SectionDefinition:
367       Length:          85
368       NumberOfRelocations: 1
369       NumberOfLinenumbers: 0
370       CheckSum:        1989857796
371       Number:          1
372   - Name:            .data
373     Value:           0
374     SectionNumber:   2
375     SimpleType:      IMAGE_SYM_TYPE_NULL
376     ComplexType:     IMAGE_SYM_DTYPE_NULL
377     StorageClass:    IMAGE_SYM_CLASS_STATIC
378     SectionDefinition:
379       Length:          0
380       NumberOfRelocations: 0
381       NumberOfLinenumbers: 0
382       CheckSum:        0
383       Number:          2
384   - Name:            .bss
385     Value:           0
386     SectionNumber:   3
387     SimpleType:      IMAGE_SYM_TYPE_NULL
388     ComplexType:     IMAGE_SYM_DTYPE_NULL
389     StorageClass:    IMAGE_SYM_CLASS_STATIC
390     SectionDefinition:
391       Length:          0
392       NumberOfRelocations: 0
393       NumberOfLinenumbers: 0
394       CheckSum:        0
395       Number:          3
396   - Name:            .drectve
397     Value:           0
398     SectionNumber:   4
399     SimpleType:      IMAGE_SYM_TYPE_NULL
400     ComplexType:     IMAGE_SYM_DTYPE_NULL
401     StorageClass:    IMAGE_SYM_CLASS_STATIC
402     SectionDefinition:
403       Length:          48
404       NumberOfRelocations: 0
405       NumberOfLinenumbers: 0
406       CheckSum:        149686238
407       Number:          4
408   - Name:            '.debug$S'
409     Value:           0
410     SectionNumber:   5
411     SimpleType:      IMAGE_SYM_TYPE_NULL
412     ComplexType:     IMAGE_SYM_DTYPE_NULL
413     StorageClass:    IMAGE_SYM_CLASS_STATIC
414     SectionDefinition:
415       Length:          988
416       NumberOfRelocations: 18
417       NumberOfLinenumbers: 0
418       CheckSum:        2571438511
419       Number:          5
420   - Name:            '.debug$T'
421     Value:           0
422     SectionNumber:   6
423     SimpleType:      IMAGE_SYM_TYPE_NULL
424     ComplexType:     IMAGE_SYM_DTYPE_NULL
425     StorageClass:    IMAGE_SYM_CLASS_STATIC
426     SectionDefinition:
427       Length:          120
428       NumberOfRelocations: 0
429       NumberOfLinenumbers: 0
430       CheckSum:        3148269371
431       Number:          6
432   - Name:            .llvm_addrsig
433     Value:           0
434     SectionNumber:   7
435     SimpleType:      IMAGE_SYM_TYPE_NULL
436     ComplexType:     IMAGE_SYM_DTYPE_NULL
437     StorageClass:    IMAGE_SYM_CLASS_STATIC
438     SectionDefinition:
439       Length:          1
440       NumberOfRelocations: 0
441       NumberOfLinenumbers: 0
442       CheckSum:        2428444049
443       Number:          7
444   - Name:            '@feat.00'
445     Value:           1
446     SectionNumber:   -1
447     SimpleType:      IMAGE_SYM_TYPE_NULL
448     ComplexType:     IMAGE_SYM_DTYPE_NULL
449     StorageClass:    IMAGE_SYM_CLASS_STATIC
450   - Name:            '?func@@YAHHH@Z'
451     Value:           0
452     SectionNumber:   1
453     SimpleType:      IMAGE_SYM_TYPE_NULL
454     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
455     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
456   - Name:            _main
457     Value:           32
458     SectionNumber:   1
459     SimpleType:      IMAGE_SYM_TYPE_NULL
460     ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
461     StorageClass:    IMAGE_SYM_CLASS_EXTERNAL