- //==- NativeRawSymbol.h - Native implementation of IPDBRawSymbol -*- C++ -*-==// 
- // 
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
- // See https://llvm.org/LICENSE.txt for license information. 
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
- // 
- //===----------------------------------------------------------------------===// 
-   
- #ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVERAWSYMBOL_H 
- #define LLVM_DEBUGINFO_PDB_NATIVE_NATIVERAWSYMBOL_H 
-   
- #include "llvm/DebugInfo/PDB/IPDBRawSymbol.h" 
- #include <cstdint> 
- #include <memory> 
-   
- namespace llvm { 
- namespace pdb { 
-   
- class NativeSession; 
-   
- class NativeRawSymbol : public IPDBRawSymbol { 
-   friend class SymbolCache; 
-   virtual void initialize() {} 
-   
- public: 
-   NativeRawSymbol(NativeSession &PDBSession, PDB_SymType Tag, 
-                   SymIndexId SymbolId); 
-   
-   void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields, 
-             PdbSymbolIdField RecurseIdFields) const override; 
-   
-   std::unique_ptr<IPDBEnumSymbols> 
-     findChildren(PDB_SymType Type) const override; 
-   std::unique_ptr<IPDBEnumSymbols> 
-     findChildren(PDB_SymType Type, StringRef Name, 
-       PDB_NameSearchFlags Flags) const override; 
-   std::unique_ptr<IPDBEnumSymbols> 
-     findChildrenByAddr(PDB_SymType Type, StringRef Name, 
-                        PDB_NameSearchFlags Flags, 
-                        uint32_t Section, uint32_t Offset) const override; 
-   std::unique_ptr<IPDBEnumSymbols> 
-     findChildrenByVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, 
-                      uint64_t VA) const override; 
-   std::unique_ptr<IPDBEnumSymbols> 
-     findChildrenByRVA(PDB_SymType Type, StringRef Name, PDB_NameSearchFlags Flags, 
-       uint32_t RVA) const override; 
-   
-   std::unique_ptr<IPDBEnumSymbols> 
-     findInlineFramesByAddr(uint32_t Section, uint32_t Offset) const override; 
-   std::unique_ptr<IPDBEnumSymbols> 
-     findInlineFramesByRVA(uint32_t RVA) const override; 
-   std::unique_ptr<IPDBEnumSymbols> 
-     findInlineFramesByVA(uint64_t VA) const override; 
-   
-   std::unique_ptr<IPDBEnumLineNumbers> findInlineeLines() const override; 
-   std::unique_ptr<IPDBEnumLineNumbers> 
-     findInlineeLinesByAddr(uint32_t Section, uint32_t Offset, 
-                            uint32_t Length) const override; 
-   std::unique_ptr<IPDBEnumLineNumbers> 
-     findInlineeLinesByRVA(uint32_t RVA, uint32_t Length) const override; 
-   std::unique_ptr<IPDBEnumLineNumbers> 
-     findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override; 
-   
-   void getDataBytes(SmallVector<uint8_t, 32> &Bytes) const override; 
-   void getFrontEndVersion(VersionInfo &Version) const override; 
-   void getBackEndVersion(VersionInfo &Version) const override; 
-   PDB_MemberAccess getAccess() const override; 
-   uint32_t getAddressOffset() const override; 
-   uint32_t getAddressSection() const override; 
-   uint32_t getAge() const override; 
-   SymIndexId getArrayIndexTypeId() const override; 
-   uint32_t getBaseDataOffset() const override; 
-   uint32_t getBaseDataSlot() const override; 
-   SymIndexId getBaseSymbolId() const override; 
-   PDB_BuiltinType getBuiltinType() const override; 
-   uint32_t getBitPosition() const override; 
-   PDB_CallingConv getCallingConvention() const override; 
-   SymIndexId getClassParentId() const override; 
-   std::string getCompilerName() const override; 
-   uint32_t getCount() const override; 
-   uint32_t getCountLiveRanges() const override; 
-   PDB_Lang getLanguage() const override; 
-   SymIndexId getLexicalParentId() const override; 
-   std::string getLibraryName() const override; 
-   uint32_t getLiveRangeStartAddressOffset() const override; 
-   uint32_t getLiveRangeStartAddressSection() const override; 
-   uint32_t getLiveRangeStartRelativeVirtualAddress() const override; 
-   codeview::RegisterId getLocalBasePointerRegisterId() const override; 
-   SymIndexId getLowerBoundId() const override; 
-   uint32_t getMemorySpaceKind() const override; 
-   std::string getName() const override; 
-   uint32_t getNumberOfAcceleratorPointerTags() const override; 
-   uint32_t getNumberOfColumns() const override; 
-   uint32_t getNumberOfModifiers() const override; 
-   uint32_t getNumberOfRegisterIndices() const override; 
-   uint32_t getNumberOfRows() const override; 
-   std::string getObjectFileName() const override; 
-   uint32_t getOemId() const override; 
-   SymIndexId getOemSymbolId() const override; 
-   uint32_t getOffsetInUdt() const override; 
-   PDB_Cpu getPlatform() const override; 
-   uint32_t getRank() const override; 
-   codeview::RegisterId getRegisterId() const override; 
-   uint32_t getRegisterType() const override; 
-   uint32_t getRelativeVirtualAddress() const override; 
-   uint32_t getSamplerSlot() const override; 
-   uint32_t getSignature() const override; 
-   uint32_t getSizeInUdt() const override; 
-   uint32_t getSlot() const override; 
-   std::string getSourceFileName() const override; 
-   std::unique_ptr<IPDBLineNumber> getSrcLineOnTypeDefn() const override; 
-   uint32_t getStride() const override; 
-   SymIndexId getSubTypeId() const override; 
-   std::string getSymbolsFileName() const override; 
-   SymIndexId getSymIndexId() const override; 
-   uint32_t getTargetOffset() const override; 
-   uint32_t getTargetRelativeVirtualAddress() const override; 
-   uint64_t getTargetVirtualAddress() const override; 
-   uint32_t getTargetSection() const override; 
-   uint32_t getTextureSlot() const override; 
-   uint32_t getTimeStamp() const override; 
-   uint32_t getToken() const override; 
-   SymIndexId getTypeId() const override; 
-   uint32_t getUavSlot() const override; 
-   std::string getUndecoratedName() const override; 
-   std::string getUndecoratedNameEx(PDB_UndnameFlags Flags) const override; 
-   SymIndexId getUnmodifiedTypeId() const override; 
-   SymIndexId getUpperBoundId() const override; 
-   Variant getValue() const override; 
-   uint32_t getVirtualBaseDispIndex() const override; 
-   uint32_t getVirtualBaseOffset() const override; 
-   SymIndexId getVirtualTableShapeId() const override; 
-   std::unique_ptr<PDBSymbolTypeBuiltin> 
-   getVirtualBaseTableType() const override; 
-   PDB_DataKind getDataKind() const override; 
-   PDB_SymType getSymTag() const override; 
-   codeview::GUID getGuid() const override; 
-   int32_t getOffset() const override; 
-   int32_t getThisAdjust() const override; 
-   int32_t getVirtualBasePointerOffset() const override; 
-   PDB_LocType getLocationType() const override; 
-   PDB_Machine getMachineType() const override; 
-   codeview::ThunkOrdinal getThunkOrdinal() const override; 
-   uint64_t getLength() const override; 
-   uint64_t getLiveRangeLength() const override; 
-   uint64_t getVirtualAddress() const override; 
-   PDB_UdtType getUdtKind() const override; 
-   bool hasConstructor() const override; 
-   bool hasCustomCallingConvention() const override; 
-   bool hasFarReturn() const override; 
-   bool isCode() const override; 
-   bool isCompilerGenerated() const override; 
-   bool isConstType() const override; 
-   bool isEditAndContinueEnabled() const override; 
-   bool isFunction() const override; 
-   bool getAddressTaken() const override; 
-   bool getNoStackOrdering() const override; 
-   bool hasAlloca() const override; 
-   bool hasAssignmentOperator() const override; 
-   bool hasCTypes() const override; 
-   bool hasCastOperator() const override; 
-   bool hasDebugInfo() const override; 
-   bool hasEH() const override; 
-   bool hasEHa() const override; 
-   bool hasInlAsm() const override; 
-   bool hasInlineAttribute() const override; 
-   bool hasInterruptReturn() const override; 
-   bool hasFramePointer() const override; 
-   bool hasLongJump() const override; 
-   bool hasManagedCode() const override; 
-   bool hasNestedTypes() const override; 
-   bool hasNoInlineAttribute() const override; 
-   bool hasNoReturnAttribute() const override; 
-   bool hasOptimizedCodeDebugInfo() const override; 
-   bool hasOverloadedOperator() const override; 
-   bool hasSEH() const override; 
-   bool hasSecurityChecks() const override; 
-   bool hasSetJump() const override; 
-   bool hasStrictGSCheck() const override; 
-   bool isAcceleratorGroupSharedLocal() const override; 
-   bool isAcceleratorPointerTagLiveRange() const override; 
-   bool isAcceleratorStubFunction() const override; 
-   bool isAggregated() const override; 
-   bool isIntroVirtualFunction() const override; 
-   bool isCVTCIL() const override; 
-   bool isConstructorVirtualBase() const override; 
-   bool isCxxReturnUdt() const override; 
-   bool isDataAligned() const override; 
-   bool isHLSLData() const override; 
-   bool isHotpatchable() const override; 
-   bool isIndirectVirtualBaseClass() const override; 
-   bool isInterfaceUdt() const override; 
-   bool isIntrinsic() const override; 
-   bool isLTCG() const override; 
-   bool isLocationControlFlowDependent() const override; 
-   bool isMSILNetmodule() const override; 
-   bool isMatrixRowMajor() const override; 
-   bool isManagedCode() const override; 
-   bool isMSILCode() const override; 
-   bool isMultipleInheritance() const override; 
-   bool isNaked() const override; 
-   bool isNested() const override; 
-   bool isOptimizedAway() const override; 
-   bool isPacked() const override; 
-   bool isPointerBasedOnSymbolValue() const override; 
-   bool isPointerToDataMember() const override; 
-   bool isPointerToMemberFunction() const override; 
-   bool isPureVirtual() const override; 
-   bool isRValueReference() const override; 
-   bool isRefUdt() const override; 
-   bool isReference() const override; 
-   bool isRestrictedType() const override; 
-   bool isReturnValue() const override; 
-   bool isSafeBuffers() const override; 
-   bool isScoped() const override; 
-   bool isSdl() const override; 
-   bool isSingleInheritance() const override; 
-   bool isSplitted() const override; 
-   bool isStatic() const override; 
-   bool hasPrivateSymbols() const override; 
-   bool isUnalignedType() const override; 
-   bool isUnreached() const override; 
-   bool isValueUdt() const override; 
-   bool isVirtual() const override; 
-   bool isVirtualBaseClass() const override; 
-   bool isVirtualInheritance() const override; 
-   bool isVolatileType() const override; 
-   bool wasInlined() const override; 
-   std::string getUnused() const override; 
-   
- protected: 
-   NativeSession &Session; 
-   PDB_SymType Tag; 
-   SymIndexId SymbolId; 
- }; 
-   
- } // end namespace pdb 
- } // end namespace llvm 
-   
- #endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVERAWSYMBOL_H 
-