blob: ed6db63edbabf9fe6ba5f9070795f018946e6423 [file] [log] [blame]
Adrian McCarthy0beb3322017-02-09 21:51:19 +00001//===- NativeRawSymbol.cpp - Native implementation of IPDBRawSymbol -*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
11#include "llvm/ADT/ArrayRef.h"
12#include "llvm/ADT/STLExtras.h"
13#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
Adrian McCarthy65d26882017-03-15 20:17:58 +000014#include "llvm/DebugInfo/PDB/Native/NativeSession.h"
Adrian McCarthy0beb3322017-02-09 21:51:19 +000015#include "llvm/DebugInfo/PDB/PDBExtras.h"
Zachary Turner16901642017-04-24 17:47:24 +000016#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
Zachary Turnerc883a8c2017-04-12 23:18:21 +000017#include "llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h"
18#include "llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h"
Adrian McCarthy0beb3322017-02-09 21:51:19 +000019#include "llvm/Support/ConvertUTF.h"
20#include "llvm/Support/raw_ostream.h"
21
22using namespace llvm;
23using namespace llvm::pdb;
24
Adrian McCarthy31bcb6f2017-06-22 18:43:18 +000025NativeRawSymbol::NativeRawSymbol(NativeSession &PDBSession, uint32_t SymbolId)
26 : Session(PDBSession), SymbolId(SymbolId) {}
Adrian McCarthy0beb3322017-02-09 21:51:19 +000027
28void NativeRawSymbol::dump(raw_ostream &OS, int Indent) const {}
29
30std::unique_ptr<IPDBEnumSymbols>
31NativeRawSymbol::findChildren(PDB_SymType Type) const {
32 return nullptr;
33}
34
35std::unique_ptr<IPDBEnumSymbols>
36NativeRawSymbol::findChildren(PDB_SymType Type, StringRef Name,
37 PDB_NameSearchFlags Flags) const {
38 return nullptr;
39}
40
41std::unique_ptr<IPDBEnumSymbols>
42NativeRawSymbol::findChildrenByRVA(PDB_SymType Type, StringRef Name,
43 PDB_NameSearchFlags Flags, uint32_t RVA) const {
44 return nullptr;
45}
46
47std::unique_ptr<IPDBEnumSymbols>
48NativeRawSymbol::findInlineFramesByRVA(uint32_t RVA) const {
49 return nullptr;
50}
51
52void NativeRawSymbol::getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const {
53 bytes.clear();
54}
55
56PDB_MemberAccess NativeRawSymbol::getAccess() const {
57 return PDB_MemberAccess::Private;
58}
59
60uint32_t NativeRawSymbol::getAddressOffset() const {
61 return 0;
62}
63
64uint32_t NativeRawSymbol::getAddressSection() const {
65 return 0;
66}
67
68uint32_t NativeRawSymbol::getAge() const {
69 return 0;
70}
71
72uint32_t NativeRawSymbol::getArrayIndexTypeId() const {
73 return 0;
74}
75
76void NativeRawSymbol::getBackEndVersion(VersionInfo &Version) const {
77 Version.Major = 0;
78 Version.Minor = 0;
79 Version.Build = 0;
80 Version.QFE = 0;
81}
82
83uint32_t NativeRawSymbol::getBaseDataOffset() const {
84 return 0;
85}
86
87uint32_t NativeRawSymbol::getBaseDataSlot() const {
88 return 0;
89}
90
91uint32_t NativeRawSymbol::getBaseSymbolId() const {
92 return 0;
93}
94
95PDB_BuiltinType NativeRawSymbol::getBuiltinType() const {
96 return PDB_BuiltinType::None;
97}
98
99uint32_t NativeRawSymbol::getBitPosition() const {
100 return 0;
101}
102
103PDB_CallingConv NativeRawSymbol::getCallingConvention() const {
104 return PDB_CallingConv::FarStdCall;
105}
106
107uint32_t NativeRawSymbol::getClassParentId() const {
108 return 0;
109}
110
111std::string NativeRawSymbol::getCompilerName() const {
112 return 0;
113}
114
115uint32_t NativeRawSymbol::getCount() const {
116 return 0;
117}
118
119uint32_t NativeRawSymbol::getCountLiveRanges() const {
120 return 0;
121}
122
123void NativeRawSymbol::getFrontEndVersion(VersionInfo &Version) const {
124 Version.Major = 0;
125 Version.Minor = 0;
126 Version.Build = 0;
127 Version.QFE = 0;
128}
129
130PDB_Lang NativeRawSymbol::getLanguage() const {
131 return PDB_Lang::Cobol;
132}
133
134uint32_t NativeRawSymbol::getLexicalParentId() const {
135 return 0;
136}
137
138std::string NativeRawSymbol::getLibraryName() const {
139 return "";
140}
141
142uint32_t NativeRawSymbol::getLiveRangeStartAddressOffset() const {
143 return 0;
144}
145
146uint32_t NativeRawSymbol::getLiveRangeStartAddressSection() const {
147 return 0;
148}
149
150uint32_t NativeRawSymbol::getLiveRangeStartRelativeVirtualAddress() const {
151 return 0;
152}
153
154codeview::RegisterId NativeRawSymbol::getLocalBasePointerRegisterId() const {
155 return codeview::RegisterId::EAX;
156}
157
158uint32_t NativeRawSymbol::getLowerBoundId() const {
159 return 0;
160}
161
162uint32_t NativeRawSymbol::getMemorySpaceKind() const {
163 return 0;
164}
165
166std::string NativeRawSymbol::getName() const {
167 return 0;
168}
169
170uint32_t NativeRawSymbol::getNumberOfAcceleratorPointerTags() const {
171 return 0;
172}
173
174uint32_t NativeRawSymbol::getNumberOfColumns() const {
175 return 0;
176}
177
178uint32_t NativeRawSymbol::getNumberOfModifiers() const {
179 return 0;
180}
181
182uint32_t NativeRawSymbol::getNumberOfRegisterIndices() const {
183 return 0;
184}
185
186uint32_t NativeRawSymbol::getNumberOfRows() const {
187 return 0;
188}
189
190std::string NativeRawSymbol::getObjectFileName() const {
191 return "";
192}
193
194uint32_t NativeRawSymbol::getOemId() const {
195 return 0;
196}
197
198uint32_t NativeRawSymbol::getOemSymbolId() const {
199 return 0;
200}
201
202uint32_t NativeRawSymbol::getOffsetInUdt() const {
203 return 0;
204}
205
206PDB_Cpu NativeRawSymbol::getPlatform() const {
207 return PDB_Cpu::Intel8080;
208}
209
210uint32_t NativeRawSymbol::getRank() const {
211 return 0;
212}
213
214codeview::RegisterId NativeRawSymbol::getRegisterId() const {
215 return codeview::RegisterId::EAX;
216}
217
218uint32_t NativeRawSymbol::getRegisterType() const {
219 return 0;
220}
221
222uint32_t NativeRawSymbol::getRelativeVirtualAddress() const {
223 return 0;
224}
225
226uint32_t NativeRawSymbol::getSamplerSlot() const {
227 return 0;
228}
229
230uint32_t NativeRawSymbol::getSignature() const {
231 return 0;
232}
233
234uint32_t NativeRawSymbol::getSizeInUdt() const {
235 return 0;
236}
237
238uint32_t NativeRawSymbol::getSlot() const {
239 return 0;
240}
241
242std::string NativeRawSymbol::getSourceFileName() const {
243 return 0;
244}
245
246uint32_t NativeRawSymbol::getStride() const {
247 return 0;
248}
249
250uint32_t NativeRawSymbol::getSubTypeId() const {
251 return 0;
252}
253
Adrian McCarthy4d93d662017-03-29 19:27:08 +0000254std::string NativeRawSymbol::getSymbolsFileName() const { return ""; }
Adrian McCarthy0beb3322017-02-09 21:51:19 +0000255
Adrian McCarthy31bcb6f2017-06-22 18:43:18 +0000256uint32_t NativeRawSymbol::getSymIndexId() const { return SymbolId; }
Adrian McCarthy0beb3322017-02-09 21:51:19 +0000257
258uint32_t NativeRawSymbol::getTargetOffset() const {
259 return 0;
260}
261
262uint32_t NativeRawSymbol::getTargetRelativeVirtualAddress() const {
263 return 0;
264}
265
266uint64_t NativeRawSymbol::getTargetVirtualAddress() const {
267 return 0;
268}
269
270uint32_t NativeRawSymbol::getTargetSection() const {
271 return 0;
272}
273
274uint32_t NativeRawSymbol::getTextureSlot() const {
275 return 0;
276}
277
278uint32_t NativeRawSymbol::getTimeStamp() const {
279 return 0;
280}
281
282uint32_t NativeRawSymbol::getToken() const {
283 return 0;
284}
285
286uint32_t NativeRawSymbol::getTypeId() const {
287 return 0;
288}
289
290uint32_t NativeRawSymbol::getUavSlot() const {
291 return 0;
292}
293
294std::string NativeRawSymbol::getUndecoratedName() const {
295 return 0;
296}
297
298uint32_t NativeRawSymbol::getUnmodifiedTypeId() const {
299 return 0;
300}
301
302uint32_t NativeRawSymbol::getUpperBoundId() const {
303 return 0;
304}
305
306Variant NativeRawSymbol::getValue() const {
307 return Variant();
308}
309
310uint32_t NativeRawSymbol::getVirtualBaseDispIndex() const {
311 return 0;
312}
313
314uint32_t NativeRawSymbol::getVirtualBaseOffset() const {
315 return 0;
316}
317
318uint32_t NativeRawSymbol::getVirtualTableShapeId() const {
319 return 0;
320}
321
Zachary Turner16901642017-04-24 17:47:24 +0000322std::unique_ptr<PDBSymbolTypeBuiltin>
Zachary Turnerc883a8c2017-04-12 23:18:21 +0000323NativeRawSymbol::getVirtualBaseTableType() const {
324 return nullptr;
325}
326
Adrian McCarthy0beb3322017-02-09 21:51:19 +0000327PDB_DataKind NativeRawSymbol::getDataKind() const {
328 return PDB_DataKind::Unknown;
329}
330
331PDB_SymType NativeRawSymbol::getSymTag() const {
332 return PDB_SymType::None;
333}
334
335PDB_UniqueId NativeRawSymbol::getGuid() const {
Adrian McCarthy649b8e02017-02-24 00:10:47 +0000336 return PDB_UniqueId{{0}};
Adrian McCarthy0beb3322017-02-09 21:51:19 +0000337}
338
339int32_t NativeRawSymbol::getOffset() const {
340 return 0;
341}
342
343int32_t NativeRawSymbol::getThisAdjust() const {
344 return 0;
345}
346
347int32_t NativeRawSymbol::getVirtualBasePointerOffset() const {
348 return 0;
349}
350
351PDB_LocType NativeRawSymbol::getLocationType() const {
352 return PDB_LocType::Null;
353}
354
355PDB_Machine NativeRawSymbol::getMachineType() const {
356 return PDB_Machine::Invalid;
357}
358
359codeview::ThunkOrdinal NativeRawSymbol::getThunkOrdinal() const {
360 return codeview::ThunkOrdinal::Standard;
361}
362
363uint64_t NativeRawSymbol::getLength() const {
364 return 0;
365}
366
367uint64_t NativeRawSymbol::getLiveRangeLength() const {
368 return 0;
369}
370
371uint64_t NativeRawSymbol::getVirtualAddress() const {
372 return 0;
373}
374
375PDB_UdtType NativeRawSymbol::getUdtKind() const {
376 return PDB_UdtType::Struct;
377}
378
379bool NativeRawSymbol::hasConstructor() const {
380 return false;
381}
382
383bool NativeRawSymbol::hasCustomCallingConvention() const {
384 return false;
385}
386
387bool NativeRawSymbol::hasFarReturn() const {
388 return false;
389}
390
391bool NativeRawSymbol::isCode() const {
392 return false;
393}
394
395bool NativeRawSymbol::isCompilerGenerated() const {
396 return false;
397}
398
399bool NativeRawSymbol::isConstType() const {
400 return false;
401}
402
403bool NativeRawSymbol::isEditAndContinueEnabled() const {
404 return false;
405}
406
407bool NativeRawSymbol::isFunction() const {
408 return false;
409}
410
411bool NativeRawSymbol::getAddressTaken() const {
412 return false;
413}
414
415bool NativeRawSymbol::getNoStackOrdering() const {
416 return false;
417}
418
419bool NativeRawSymbol::hasAlloca() const {
420 return false;
421}
422
423bool NativeRawSymbol::hasAssignmentOperator() const {
424 return false;
425}
426
427bool NativeRawSymbol::hasCTypes() const {
428 return false;
429}
430
431bool NativeRawSymbol::hasCastOperator() const {
432 return false;
433}
434
435bool NativeRawSymbol::hasDebugInfo() const {
436 return false;
437}
438
439bool NativeRawSymbol::hasEH() const {
440 return false;
441}
442
443bool NativeRawSymbol::hasEHa() const {
444 return false;
445}
446
447bool NativeRawSymbol::hasInlAsm() const {
448 return false;
449}
450
451bool NativeRawSymbol::hasInlineAttribute() const {
452 return false;
453}
454
455bool NativeRawSymbol::hasInterruptReturn() const {
456 return false;
457}
458
459bool NativeRawSymbol::hasFramePointer() const {
460 return false;
461}
462
463bool NativeRawSymbol::hasLongJump() const {
464 return false;
465}
466
467bool NativeRawSymbol::hasManagedCode() const {
468 return false;
469}
470
471bool NativeRawSymbol::hasNestedTypes() const {
472 return false;
473}
474
475bool NativeRawSymbol::hasNoInlineAttribute() const {
476 return false;
477}
478
479bool NativeRawSymbol::hasNoReturnAttribute() const {
480 return false;
481}
482
483bool NativeRawSymbol::hasOptimizedCodeDebugInfo() const {
484 return false;
485}
486
487bool NativeRawSymbol::hasOverloadedOperator() const {
488 return false;
489}
490
491bool NativeRawSymbol::hasSEH() const {
492 return false;
493}
494
495bool NativeRawSymbol::hasSecurityChecks() const {
496 return false;
497}
498
499bool NativeRawSymbol::hasSetJump() const {
500 return false;
501}
502
503bool NativeRawSymbol::hasStrictGSCheck() const {
504 return false;
505}
506
507bool NativeRawSymbol::isAcceleratorGroupSharedLocal() const {
508 return false;
509}
510
511bool NativeRawSymbol::isAcceleratorPointerTagLiveRange() const {
512 return false;
513}
514
515bool NativeRawSymbol::isAcceleratorStubFunction() const {
516 return false;
517}
518
519bool NativeRawSymbol::isAggregated() const {
520 return false;
521}
522
523bool NativeRawSymbol::isIntroVirtualFunction() const {
524 return false;
525}
526
527bool NativeRawSymbol::isCVTCIL() const {
528 return false;
529}
530
531bool NativeRawSymbol::isConstructorVirtualBase() const {
532 return false;
533}
534
535bool NativeRawSymbol::isCxxReturnUdt() const {
536 return false;
537}
538
539bool NativeRawSymbol::isDataAligned() const {
540 return false;
541}
542
543bool NativeRawSymbol::isHLSLData() const {
544 return false;
545}
546
547bool NativeRawSymbol::isHotpatchable() const {
548 return false;
549}
550
551bool NativeRawSymbol::isIndirectVirtualBaseClass() const {
552 return false;
553}
554
555bool NativeRawSymbol::isInterfaceUdt() const {
556 return false;
557}
558
559bool NativeRawSymbol::isIntrinsic() const {
560 return false;
561}
562
563bool NativeRawSymbol::isLTCG() const {
564 return false;
565}
566
567bool NativeRawSymbol::isLocationControlFlowDependent() const {
568 return false;
569}
570
571bool NativeRawSymbol::isMSILNetmodule() const {
572 return false;
573}
574
575bool NativeRawSymbol::isMatrixRowMajor() const {
576 return false;
577}
578
579bool NativeRawSymbol::isManagedCode() const {
580 return false;
581}
582
583bool NativeRawSymbol::isMSILCode() const {
584 return false;
585}
586
587bool NativeRawSymbol::isMultipleInheritance() const {
588 return false;
589}
590
591bool NativeRawSymbol::isNaked() const {
592 return false;
593}
594
595bool NativeRawSymbol::isNested() const {
596 return false;
597}
598
599bool NativeRawSymbol::isOptimizedAway() const {
600 return false;
601}
602
603bool NativeRawSymbol::isPacked() const {
604 return false;
605}
606
607bool NativeRawSymbol::isPointerBasedOnSymbolValue() const {
608 return false;
609}
610
611bool NativeRawSymbol::isPointerToDataMember() const {
612 return false;
613}
614
615bool NativeRawSymbol::isPointerToMemberFunction() const {
616 return false;
617}
618
619bool NativeRawSymbol::isPureVirtual() const {
620 return false;
621}
622
623bool NativeRawSymbol::isRValueReference() const {
624 return false;
625}
626
627bool NativeRawSymbol::isRefUdt() const {
628 return false;
629}
630
631bool NativeRawSymbol::isReference() const {
632 return false;
633}
634
635bool NativeRawSymbol::isRestrictedType() const {
636 return false;
637}
638
639bool NativeRawSymbol::isReturnValue() const {
640 return false;
641}
642
643bool NativeRawSymbol::isSafeBuffers() const {
644 return false;
645}
646
647bool NativeRawSymbol::isScoped() const {
648 return false;
649}
650
651bool NativeRawSymbol::isSdl() const {
652 return false;
653}
654
655bool NativeRawSymbol::isSingleInheritance() const {
656 return false;
657}
658
659bool NativeRawSymbol::isSplitted() const {
660 return false;
661}
662
663bool NativeRawSymbol::isStatic() const {
664 return false;
665}
666
667bool NativeRawSymbol::hasPrivateSymbols() const {
668 return false;
669}
670
671bool NativeRawSymbol::isUnalignedType() const {
672 return false;
673}
674
675bool NativeRawSymbol::isUnreached() const {
676 return false;
677}
678
679bool NativeRawSymbol::isValueUdt() const {
680 return false;
681}
682
683bool NativeRawSymbol::isVirtual() const {
684 return false;
685}
686
687bool NativeRawSymbol::isVirtualBaseClass() const {
688 return false;
689}
690
691bool NativeRawSymbol::isVirtualInheritance() const {
692 return false;
693}
694
695bool NativeRawSymbol::isVolatileType() const {
696 return false;
697}
698
699bool NativeRawSymbol::wasInlined() const {
700 return false;
701}
702
703std::string NativeRawSymbol::getUnused() const {
704 return "";
705}