Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 1
//===- DIARawSymbol.h - DIA implementation of IPDBRawSymbol ----*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
 
9
#ifndef LLVM_DEBUGINFO_PDB_DIA_DIARAWSYMBOL_H
10
#define LLVM_DEBUGINFO_PDB_DIA_DIARAWSYMBOL_H
11
 
12
#include "DIASupport.h"
13
#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
14
 
15
namespace llvm {
16
namespace pdb {
17
class DIASession;
18
class DIARawSymbol : public IPDBRawSymbol {
19
public:
20
  DIARawSymbol(const DIASession &PDBSession, CComPtr<IDiaSymbol> DiaSymbol);
21
 
22
  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
23
            PdbSymbolIdField RecurseIdFields) const override;
24
 
25
  CComPtr<IDiaSymbol> getDiaSymbol() const { return Symbol; }
26
 
27
  std::unique_ptr<IPDBEnumSymbols>
28
  findChildren(PDB_SymType Type) const override;
29
  std::unique_ptr<IPDBEnumSymbols>
30
  findChildren(PDB_SymType Type, StringRef Name,
31
               PDB_NameSearchFlags Flags) const override;
32
  std::unique_ptr<IPDBEnumSymbols>
33
  findChildrenByAddr(PDB_SymType Type, StringRef Name,
34
                     PDB_NameSearchFlags Flags,
35
                     uint32_t Section, uint32_t Offset) const override;
36
  std::unique_ptr<IPDBEnumSymbols>
37
  findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,
38
                   uint64_t VA) const override;
39
  std::unique_ptr<IPDBEnumSymbols>
40
  findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags,
41
                    uint32_t RVA) const override;
42
 
43
  std::unique_ptr<IPDBEnumSymbols>
44
  findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override;
45
  std::unique_ptr<IPDBEnumSymbols>
46
  findInlineFramesByRVA(uint32_t RVA) const override;
47
  std::unique_ptr<IPDBEnumSymbols>
48
  findInlineFramesByVA(uint64_t VA) const override;
49
 
50
  std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override;
51
  std::unique_ptr<IPDBEnumLineNumbers>
52
  findInlineeLinesByAddr(uint32_t Section, uint32_t Offset,
53
                         uint32_t Length) const override;
54
  std::unique_ptr<IPDBEnumLineNumbers>
55
  findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override;
56
  std::unique_ptr<IPDBEnumLineNumbers>
57
  findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;
58
 
59
  void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes) const override;
60
  void getFrontEndVersion(VersionInfo &Version) const override;
61
  void getBackEndVersion(VersionInfo &Version) const override;
62
  PDB_MemberAccess getAccess() const override;
63
  uint32_t getAddressOffset() const override;
64
  uint32_t getAddressSection() const override;
65
  uint32_t getAge() const override;
66
  SymIndexId getArrayIndexTypeId() const override;
67
  uint32_t getBaseDataOffset() const override;
68
  uint32_t getBaseDataSlot() const override;
69
  SymIndexId getBaseSymbolId() const override;
70
  PDB_BuiltinType getBuiltinType() const override;
71
  uint32_t getBitPosition() const override;
72
  PDB_CallingConv getCallingConvention() const override;
73
  SymIndexId getClassParentId() const override;
74
  std::string getCompilerName() const override;
75
  uint32_t getCount() const override;
76
  uint32_t getCountLiveRanges() const override;
77
  PDB_Lang getLanguage() const override;
78
  SymIndexId getLexicalParentId() const override;
79
  std::string getLibraryName() const override;
80
  uint32_t getLiveRangeStartAddressOffset() const override;
81
  uint32_t getLiveRangeStartAddressSection() const override;
82
  uint32_t getLiveRangeStartRelativeVirtualAddress() const override;
83
  codeview::RegisterId getLocalBasePointerRegisterId() const override;
84
  SymIndexId getLowerBoundId() const override;
85
  uint32_t getMemorySpaceKind() const override;
86
  std::string getName() const override;
87
  uint32_t getNumberOfAcceleratorPointerTags() const override;
88
  uint32_t getNumberOfColumns() const override;
89
  uint32_t getNumberOfModifiers() const override;
90
  uint32_t getNumberOfRegisterIndices() const override;
91
  uint32_t getNumberOfRows() const override;
92
  std::string getObjectFileName() const override;
93
  uint32_t getOemId() const override;
94
  SymIndexId getOemSymbolId() const override;
95
  uint32_t getOffsetInUdt() const override;
96
  PDB_Cpu getPlatform() const override;
97
  uint32_t getRank() const override;
98
  codeview::RegisterId getRegisterId() const override;
99
  uint32_t getRegisterType() const override;
100
  uint32_t getRelativeVirtualAddress() const override;
101
  uint32_t getSamplerSlot() const override;
102
  uint32_t getSignature() const override;
103
  uint32_t getSizeInUdt() const override;
104
  uint32_t getSlot() const override;
105
  std::string getSourceFileName() const override;
106
  std::unique_ptr<IPDBLineNumber> getSrcLineOnTypeDefn() const override;
107
  uint32_t getStride() const override;
108
  SymIndexId getSubTypeId() const override;
109
  std::string getSymbolsFileName() const override;
110
  SymIndexId getSymIndexId() const override;
111
  uint32_t getTargetOffset() const override;
112
  uint32_t getTargetRelativeVirtualAddress() const override;
113
  uint64_t getTargetVirtualAddress() const override;
114
  uint32_t getTargetSection() const override;
115
  uint32_t getTextureSlot() const override;
116
  uint32_t getTimeStamp() const override;
117
  uint32_t getToken() const override;
118
  SymIndexId getTypeId() const override;
119
  uint32_t getUavSlot() const override;
120
  std::string getUndecoratedName() const override;
121
  std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const override;
122
  SymIndexId getUnmodifiedTypeId() const override;
123
  SymIndexId getUpperBoundId() const override;
124
  Variant getValue() const override;
125
  uint32_t getVirtualBaseDispIndex() const override;
126
  uint32_t getVirtualBaseOffset() const override;
127
  SymIndexId getVirtualTableShapeId() const override;
128
  std::unique_ptr<PDBSymbolTypeBuiltin>
129
  getVirtualBaseTableType() const override;
130
  PDB_DataKind getDataKind() const override;
131
  PDB_SymType getSymTag() const override;
132
  codeview::GUID getGuid() const override;
133
  int32_t getOffset() const override;
134
  int32_t getThisAdjust() const override;
135
  int32_t getVirtualBasePointerOffset() const override;
136
  PDB_LocType getLocationType() const override;
137
  PDB_Machine getMachineType() const override;
138
  codeview::ThunkOrdinal getThunkOrdinal() const override;
139
  uint64_t getLength() const override;
140
  uint64_t getLiveRangeLength() const override;
141
  uint64_t getVirtualAddress() const override;
142
  PDB_UdtType getUdtKind() const override;
143
  bool hasConstructor() const override;
144
  bool hasCustomCallingConvention() const override;
145
  bool hasFarReturn() const override;
146
  bool isCode() const override;
147
  bool isCompilerGenerated() const override;
148
  bool isConstType() const override;
149
  bool isEditAndContinueEnabled() const override;
150
  bool isFunction() const override;
151
  bool getAddressTaken() const override;
152
  bool getNoStackOrdering() const override;
153
  bool hasAlloca() const override;
154
  bool hasAssignmentOperator() const override;
155
  bool hasCTypes() const override;
156
  bool hasCastOperator() const override;
157
  bool hasDebugInfo() const override;
158
  bool hasEH() const override;
159
  bool hasEHa() const override;
160
  bool hasInlAsm() const override;
161
  bool hasInlineAttribute() const override;
162
  bool hasInterruptReturn() const override;
163
  bool hasFramePointer() const override;
164
  bool hasLongJump() const override;
165
  bool hasManagedCode() const override;
166
  bool hasNestedTypes() const override;
167
  bool hasNoInlineAttribute() const override;
168
  bool hasNoReturnAttribute() const override;
169
  bool hasOptimizedCodeDebugInfo() const override;
170
  bool hasOverloadedOperator() const override;
171
  bool hasSEH() const override;
172
  bool hasSecurityChecks() const override;
173
  bool hasSetJump() const override;
174
  bool hasStrictGSCheck() const override;
175
  bool isAcceleratorGroupSharedLocal() const override;
176
  bool isAcceleratorPointerTagLiveRange() const override;
177
  bool isAcceleratorStubFunction() const override;
178
  bool isAggregated() const override;
179
  bool isIntroVirtualFunction() const override;
180
  bool isCVTCIL() const override;
181
  bool isConstructorVirtualBase() const override;
182
  bool isCxxReturnUdt() const override;
183
  bool isDataAligned() const override;
184
  bool isHLSLData() const override;
185
  bool isHotpatchable() const override;
186
  bool isIndirectVirtualBaseClass() const override;
187
  bool isInterfaceUdt() const override;
188
  bool isIntrinsic() const override;
189
  bool isLTCG() const override;
190
  bool isLocationControlFlowDependent() const override;
191
  bool isMSILNetmodule() const override;
192
  bool isMatrixRowMajor() const override;
193
  bool isManagedCode() const override;
194
  bool isMSILCode() const override;
195
  bool isMultipleInheritance() const override;
196
  bool isNaked() const override;
197
  bool isNested() const override;
198
  bool isOptimizedAway() const override;
199
  bool isPacked() const override;
200
  bool isPointerBasedOnSymbolValue() const override;
201
  bool isPointerToDataMember() const override;
202
  bool isPointerToMemberFunction() const override;
203
  bool isPureVirtual() const override;
204
  bool isRValueReference() const override;
205
  bool isRefUdt() const override;
206
  bool isReference() const override;
207
  bool isRestrictedType() const override;
208
  bool isReturnValue() const override;
209
  bool isSafeBuffers() const override;
210
  bool isScoped() const override;
211
  bool isSdl() const override;
212
  bool isSingleInheritance() const override;
213
  bool isSplitted() const override;
214
  bool isStatic() const override;
215
  bool hasPrivateSymbols() const override;
216
  bool isUnalignedType() const override;
217
  bool isUnreached() const override;
218
  bool isValueUdt() const override;
219
  bool isVirtual() const override;
220
  bool isVirtualBaseClass() const override;
221
  bool isVirtualInheritance() const override;
222
  bool isVolatileType() const override;
223
  bool wasInlined() const override;
224
  std::string getUnused() const override;
225
 
226
private:
227
  const DIASession &Session;
228
  CComPtr<IDiaSymbol> Symbol;
229
};
230
}
231
}
232
 
233
#endif