-//===- DIASymbol.cpp - Dump debug info from a PDB file ----------*- C++ -*-===//\r
-//\r
-// The LLVM Compiler Infrastructure\r
-//\r
-// This file is distributed under the University of Illinois Open Source\r
-// License. See LICENSE.TXT for details.\r
-//\r
-//===----------------------------------------------------------------------===//\r
-\r
-#include "llvm-pdbdump.h"\r
-#include "DIASymbol.h"\r
-\r
-using namespace llvm::sys::windows;\r
-\r
-DIASymbol::DIASymbol(IDiaSymbol *DiaSymbol) : Symbol(DiaSymbol) {\r
- Symbol->AddRef();\r
-}\r
-\r
-DIASymbol::~DIASymbol() { Symbol->Release(); }\r
-\r
-void DIASymbol::fullDump(int IndentLevel) {\r
- getLexicalParent().dump("Lexical parent", IndentLevel);\r
- getClassParent().dump("Class parent", IndentLevel);\r
- getType().dump("Type", IndentLevel);\r
- getArrayIndexType().dump("Array index type", IndentLevel);\r
- getVirtualTableShape().dump("Vtable shape", IndentLevel);\r
- getLowerBound().dump("Lower bound", IndentLevel);\r
- getUpperBound().dump("Upper bound", IndentLevel);\r
- getObjectPointerType().dump("Object pointer type", IndentLevel);\r
- getContainer().dump("Container", IndentLevel);\r
- getVirtualBaseTableType().dump("Virtual base table type", IndentLevel);\r
- getUnmodifiedType().dump("Unmodified type", IndentLevel);\r
- getSubType().dump("Sub type", IndentLevel);\r
- getBaseSymbol().dump("Base symbol", IndentLevel);\r
-\r
-#if (_MSC_FULL_VER >= 180031101)\r
- // These methods are only available on VS 2013 SP4 and higher.\r
- isPGO().dump("Is PGO", IndentLevel);\r
- hasValidPGOCounts().dump("Has valid PGO counts", IndentLevel);\r
- isOptimizedForSpeed().dump("Is optimized for speed", IndentLevel);\r
- getPGOEntryCount().dump("PGO entry count", IndentLevel);\r
- getPGOEdgeCount().dump("PGO edge count", IndentLevel);\r
- getPGODynamicInstructionCount().dump("PGO dynamic instruction count",\r
- IndentLevel);\r
- getStaticSize().dump("Static size", IndentLevel);\r
- getFinalLiveStaticSize().dump("Final live static size", IndentLevel);\r
- getPhaseName().dump("Phase name", IndentLevel);\r
- hasControlFlowCheck().dump("Has control flow check", IndentLevel);\r
-#endif\r
-\r
- getAccess().dump("Access", IndentLevel);\r
- getAddressOffset().dump("Address Offset", IndentLevel);\r
- getAddressSection().dump("Address Section", IndentLevel);\r
- getAddressTaken().dump("Address Taken", IndentLevel);\r
- getAge().dump("Age", IndentLevel);\r
- getArrayIndexTypeId().dump("Array Index Type Id", IndentLevel);\r
- getBackEndMajor().dump("Back End Major", IndentLevel);\r
- getBackEndMinor().dump("Back End Minor", IndentLevel);\r
- getBackEndBuild().dump("Back End Build", IndentLevel);\r
- getBaseDataOffset().dump("Base Data Offset", IndentLevel);\r
- getBaseDataSlot().dump("Base Data Slot", IndentLevel);\r
- getBaseSymbolId().dump("Base Symbol Id", IndentLevel);\r
- getBaseType().dump("Base Type", IndentLevel);\r
- getBitPosition().dump("Bit Position", IndentLevel);\r
- getBuiltInKind().dump("Built In Kind", IndentLevel);\r
- getCallingConvention().dump("Calling Convention", IndentLevel);\r
- getClassParentId().dump("Class Parent Id", IndentLevel);\r
- isCode().dump("Code", IndentLevel);\r
- isCompilerGenerated().dump("Compiler Generated", IndentLevel);\r
- getCompilerName().dump("Compiler Name", IndentLevel);\r
- hasConstructor().dump("Constructor", IndentLevel);\r
- isConstType().dump("Const Type", IndentLevel);\r
- getCount().dump("Count", IndentLevel);\r
- getCountLiveRanges().dump("Count Live Ranges", IndentLevel);\r
- hasCustomCallingConvention().dump("Custom Calling Convention", IndentLevel);\r
- getDataKind().dump("Data Kind", IndentLevel);\r
- isEditAndContinueEnabled().dump("Edit and Continue Enabled", IndentLevel);\r
- hasFarReturn().dump("Far Return", IndentLevel);\r
- getFrontEndMajor().dump("Front End Major", IndentLevel);\r
- getFrontEndMinor().dump("Front End Minor", IndentLevel);\r
- getFrontEndBuild().dump("Front End Build", IndentLevel);\r
- isFunction().dump("Function", IndentLevel);\r
- getGuid().dump("GUID", IndentLevel);\r
- hasAlloca().dump("Has Alloca", IndentLevel);\r
- hasAssignmentOperator().dump("Has Assignment Operator", IndentLevel);\r
- hasCastOperator().dump("Has Cast Operator", IndentLevel);\r
- hasDebugInfo().dump("Has Debug Info", IndentLevel);\r
- hasEH().dump("Has EH", IndentLevel);\r
- hasEHa().dump("Has EHa", IndentLevel);\r
- hasInlAsm().dump("Has Inline Asm", IndentLevel);\r
- hasLongJump().dump("Has longjmp", IndentLevel);\r
- hasManagedCode().dump("Has Managed Code", IndentLevel);\r
- hasNestedTypes().dump("Has Nested Types", IndentLevel);\r
- hasSecurityChecks().dump("Has Security Checks", IndentLevel);\r
- hasSEH().dump("Has SEH", IndentLevel);\r
- hasSetJump().dump("Has setjmp", IndentLevel);\r
- isIndirectVirtualBaseClass().dump("Is indirect virtual base", IndentLevel);\r
- hasInlineAttribute().dump("Has inline declspec", IndentLevel);\r
- hasInterruptReturn().dump("Has interrupt return", IndentLevel);\r
- isBaseVirtualFunction().dump("Is base virtual function", IndentLevel);\r
- isAcceleratorGroupSharedLocal().dump("Is Accelerator Group Shared Local",\r
- IndentLevel);\r
- isAcceleratorPointerTagLiveRange().dump(\r
- "Is Accelerator Pointer Tag Live Range", IndentLevel);\r
- isAcceleratorStubFunction().dump("Is Accelerator Stub Function", IndentLevel);\r
- isAggregated().dump("Is aggregated", IndentLevel);\r
- hasCTypes().dump("Has C types", IndentLevel);\r
- isCVTCIL().dump("Was converted from MSIL", IndentLevel);\r
- isDataAligned().dump("Is data aligned", IndentLevel);\r
- isHLSLData().dump("Is HLSL data", IndentLevel);\r
- isHotpatchable().dump("Is hot-patchable", IndentLevel);\r
- isLTCG().dump("Is LTCG", IndentLevel);\r
- isMatrixRowMajor().dump("Is matrix row major", IndentLevel);\r
- isMSILNetmodule().dump("Is MSIL .netmodule", IndentLevel);\r
- isMultipleInheritance().dump("Is multiple inheritance", IndentLevel);\r
- isNaked().dump("Is naked", IndentLevel);\r
- isOptimizedAway().dump("Is optimized away", IndentLevel);\r
- isPointerBasedOnSymbolValue().dump("Is pointer based on symbol value",\r
- IndentLevel);\r
- isPointerToDataMember().dump("Is pointer to data member", IndentLevel);\r
- isPointerToMemberFunction().dump("Is pointer to member function",\r
- IndentLevel);\r
- isReturnValue().dump("Is return value", IndentLevel);\r
- isSdl().dump("Is SDL", IndentLevel);\r
- isSingleInheritance().dump("Is single inheritance", IndentLevel);\r
- isSplitted().dump("Is splitted", IndentLevel);\r
- isStatic().dump("Is staic", IndentLevel);\r
- isStripped().dump("Is stripped", IndentLevel);\r
- isVirtualInheritance().dump("Is virtual inheritance", IndentLevel);\r
- getLanguage().dump("Language", IndentLevel);\r
- getLength().dump("Length", IndentLevel);\r
- getLexicalParentId().dump("Lexical parent id", IndentLevel);\r
- getLibraryName().dump("Library name", IndentLevel);\r
- getLiveRangeLength().dump("Live range length", IndentLevel);\r
- getLiveRangeStartAddressSection().dump("Live range start address section",\r
- IndentLevel);\r
- getLiveRangeStartAddressOffset().dump("Live range start address offset",\r
- IndentLevel);\r
- getLiveRangeStartRelativeVirtualAddress().dump("Live range start address RVA",\r
- IndentLevel);\r
- getLocationType().dump("Location type", IndentLevel);\r
- getLowerBoundId().dump("Lower bound id", IndentLevel);\r
- getMachineType().dump("Machine type", IndentLevel);\r
- isManagedRef().dump("Managed", IndentLevel);\r
- getMemorySpaceKind().dump("Memory space kind", IndentLevel);\r
- isMsilRef().dump("MSIL", IndentLevel);\r
- getName().dump("Name", IndentLevel);\r
- isNested().dump("Nested", IndentLevel);\r
- hasNoInlineAttribute().dump("Has noinline declspec", IndentLevel);\r
- hasNoReturnAttribute().dump("Has noreturn declspec", IndentLevel);\r
- getNoStackOrdering().dump("No stack ordering", IndentLevel);\r
- isUnreached().dump("Not reached", IndentLevel);\r
- getNumberOfAcceleratorPointerTags().dump("Number of accelerator pointer tags",\r
- IndentLevel);\r
- getNumberOfModifiers().dump("Number of modifiers", IndentLevel);\r
- getNumberOfRegisterIndices().dump("Number of register indices", IndentLevel);\r
- getNumberOfRows().dump("Number of rows", IndentLevel);\r
- getNumberOfColumns().dump("Number of columns", IndentLevel);\r
- getObjectFileName().dump("Object file name", IndentLevel);\r
- getOemSymbolId().dump("OEM symbol id", IndentLevel);\r
- getOffset().dump("Offset", IndentLevel);\r
- hasOptimizedCodeDebugInfo().dump("Optimized code debug info", IndentLevel);\r
- hasOverloadedOperator().dump("Overloaded operator", IndentLevel);\r
- isPacked().dump("Packed", IndentLevel);\r
- getPlatform().dump("Platform", IndentLevel);\r
- isPureVirtual().dump("Pure", IndentLevel);\r
- getRank().dump("Rank", IndentLevel);\r
- isReference().dump("Reference", IndentLevel);\r
- getRegisterId().dump("Register ID", IndentLevel);\r
- getRegisterType().dump("Register type", IndentLevel);\r
- getRelativeVirtualAddress().dump("RVA", IndentLevel);\r
- isRestrictedType().dump("Restricted type", IndentLevel);\r
- getSamplerSlot().dump("Sampler slot", IndentLevel);\r
- isScoped().dump("Scoped", IndentLevel);\r
- getSignature().dump("Signature", IndentLevel);\r
- getSizeInUdt().dump("Size in UDT", IndentLevel);\r
- getSlot().dump("Slot", IndentLevel);\r
- getSourceFileName().dump("Source file name", IndentLevel);\r
- getStride().dump("Stride", IndentLevel);\r
- getSubTypeId().dump("Sub type ID", IndentLevel);\r
- getSymbolsFileName().dump("File name", IndentLevel);\r
- getSymIndexId().dump("Sym index ID", IndentLevel);\r
- getSymTag().dump("Sym tag", IndentLevel);\r
- getTargetOffset().dump("Target offset", IndentLevel);\r
- getTargetRelativeVirtualAddress().dump("Target RVA", IndentLevel);\r
- getTargetSection().dump("Target section", IndentLevel);\r
- getTargetVirtualAddress().dump("Target virtual address", IndentLevel);\r
- getTextureSlot().dump("Texture slot", IndentLevel);\r
- getThisAdjust().dump("This adjust", IndentLevel);\r
- getThunkOrdinal().dump("Thunk ordinal", IndentLevel);\r
- getTimeStamp().dump("Time stamp", IndentLevel);\r
- getToken().dump("Token", IndentLevel);\r
- getUavSlot().dump("UAV slot", IndentLevel);\r
- getUdtKind().dump("UDT kind", IndentLevel);\r
- isUnalignedType().dump("Unaligned type", IndentLevel);\r
- getUndecoratedName().dump("Undecorated name", IndentLevel);\r
- getUnmodifiedTypeId().dump("Unmodified type id", IndentLevel);\r
- getUpperBoundId().dump("Upper bound id", IndentLevel);\r
- isVirtual().dump("Virtual", IndentLevel);\r
- getVirtualAddress().dump("Virtual address", IndentLevel);\r
- isVirtualBaseClass().dump("Virtual base class", IndentLevel);\r
- getVirtualBaseDispIndex().dump("Virtual base disp index", IndentLevel);\r
- getVirtualBaseOffset().dump("Virtual base offset", IndentLevel);\r
- getVirtualBasePointerOffset().dump("Virtual base pointer offset",\r
- IndentLevel);\r
- getVirtualTableShapeId().dump("Vtable shape ID", IndentLevel);\r
- isVolatileType().dump("Volatile type", IndentLevel);\r
-}\r
-\r
-#if (_MSC_FULL_VER >= 180031101)\r
-DIAResult<BOOL> DIASymbol::isPGO() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isPGO);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasValidPGOCounts() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasValidPGOCounts);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isOptimizedForSpeed() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedForSpeed);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getPGOEntryCount() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_PGOEntryCount);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getPGOEdgeCount() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_PGOEdgeCount);\r
-}\r
-\r
-DIAResult<ULONGLONG> DIASymbol::getPGODynamicInstructionCount() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_PGODynamicInstructionCount);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getStaticSize() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_staticSize);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getFinalLiveStaticSize() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_finalLiveStaticSize);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getPhaseName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_phaseName);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasControlFlowCheck() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasControlFlowCheck);\r
-}\r
-#endif\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getClassParent() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_classParent);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getType() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(&IDiaSymbol::get_type);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getArrayIndexType() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_arrayIndexType);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getVirtualTableShape() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_virtualTableShape);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getLowerBound() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_lowerBound);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getUpperBound() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_upperBound);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getObjectPointerType() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_objectPointerType);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getContainer() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_container);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getVirtualBaseTableType() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_virtualBaseTableType);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getUnmodifiedType() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_unmodifiedType);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getSubType() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_subType);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getBaseSymbol() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_baseSymbol);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getAccess() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_access);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getAddressOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_addressOffset);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getAddressSection() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_addressSection);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::getAddressTaken() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_addressTaken);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getAge() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_age);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getArrayIndexTypeId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_arrayIndexTypeId);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBackEndMajor() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_backEndMajor);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBackEndMinor() {\r
-\r
- return InternalGetDIAValue(&IDiaSymbol::get_backEndMinor);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBackEndBuild() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_backEndBuild);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBackEndQFE() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_backEndQFE);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBaseDataOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_baseDataOffset);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBaseDataSlot() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_baseDataSlot);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBaseSymbolId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_baseSymbolId);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBaseType() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_baseType);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBitPosition() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_bitPosition);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getBuiltInKind() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_builtInKind);\r
-}\r
-\r
-DIAResult<CV_call_e> DIASymbol::getCallingConvention() {\r
- return InternalGetDIAValue<DWORD, CV_call_e>(\r
- &IDiaSymbol::get_callingConvention);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getClassParentId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_classParentId);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isCode() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_code);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isCompilerGenerated() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_compilerGenerated);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getCompilerName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_compilerName);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasConstructor() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_constructor);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isConstType() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_constType);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getCount() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_count);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getCountLiveRanges() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_countLiveRanges);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasCustomCallingConvention() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_customCallingConvention);\r
-}\r
-\r
-DIAResult<DataKind> DIASymbol::getDataKind() {\r
- return InternalGetDIAValue<DWORD, DataKind>(&IDiaSymbol::get_dataKind);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isEditAndContinueEnabled() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_editAndContinueEnabled);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasFarReturn() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_farReturn);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getFrontEndMajor() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_frontEndMajor);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getFrontEndMinor() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_frontEndMinor);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getFrontEndBuild() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_frontEndBuild);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getFrontEndQFE() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_frontEndQFE);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isFunction() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_function);\r
-}\r
-\r
-DIAResult<GUID> DIASymbol::getGuid() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_guid);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasAlloca() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasAlloca);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasAssignmentOperator() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasAssignmentOperator);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasCastOperator() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasCastOperator);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasDebugInfo() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasDebugInfo);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasEH() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasEH);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasEHa() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasEHa);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasInlAsm() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasInlAsm);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasLongJump() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasLongJump);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasManagedCode() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasManagedCode);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasNestedTypes() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasNestedTypes);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasSecurityChecks() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasSecurityChecks);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasSEH() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasSEH);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasSetJump() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_hasSetJump);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isIndirectVirtualBaseClass() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_indirectVirtualBaseClass);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasInlineAttribute() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_inlSpec);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasInterruptReturn() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_interruptReturn);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isBaseVirtualFunction() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_intro);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isIntrinsic() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_intrinsic);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isAcceleratorGroupSharedLocal() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorGroupSharedLocal);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isAcceleratorPointerTagLiveRange() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorPointerTagLiveRange);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isAcceleratorStubFunction() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorStubFunction);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isAggregated() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isAggregated);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isConstructorVirtualBase() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isConstructorVirtualBase);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasStrictGSCheck() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_strictGSCheck);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isLocationControlFlowDependent() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isLocationControlFlowDependent);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasCTypes() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isCTypes);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isCVTCIL() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isCVTCIL);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isDataAligned() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isDataAligned);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isHLSLData() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isHLSLData);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isHotpatchable() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isHotpatchable);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isLTCG() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isLTCG);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isMatrixRowMajor() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isMatrixRowMajor);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isMSILNetmodule() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isMSILNetmodule);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isMultipleInheritance() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isMultipleInheritance);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isNaked() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isNaked);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isOptimizedAway() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedAway);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isPointerBasedOnSymbolValue() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isPointerBasedOnSymbolValue);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isPointerToDataMember() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isPointerToDataMember);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isPointerToMemberFunction() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isPointerToMemberFunction);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isReturnValue() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isReturnValue);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isSdl() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isSdl);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isSingleInheritance() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isSingleInheritance);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isSplitted() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isSplitted);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isStatic() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isStatic);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isStripped() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isStripped);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isVirtualInheritance() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isVirtualInheritance);\r
-}\r
-\r
-DIAResult<CV_CFL_LANG> DIASymbol::getLanguage() {\r
- return InternalGetDIAValue<DWORD, CV_CFL_LANG>(&IDiaSymbol::get_language);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isSafeBuffers() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isSafeBuffers);\r
-}\r
-\r
-DIAResult<ULONGLONG> DIASymbol::getLength() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_length);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getLexicalParentId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_lexicalParentId);\r
-}\r
-\r
-DIAResult<DiaSymbolPtr> DIASymbol::getLexicalParent() {\r
- return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(\r
- &IDiaSymbol::get_lexicalParent);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getLocalBasePointerRegisterId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_localBasePointerRegisterId);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getLibraryName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_libraryName);\r
-}\r
-\r
-DIAResult<ULONGLONG> DIASymbol::getLiveRangeLength() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_liveRangeLength);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressSection() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressSection);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressOffset);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getLiveRangeStartRelativeVirtualAddress() {\r
- return InternalGetDIAValue(\r
- &IDiaSymbol::get_liveRangeStartRelativeVirtualAddress);\r
-}\r
-\r
-DIAResult<LocationType> DIASymbol::getLocationType() {\r
- return InternalGetDIAValue<DWORD, LocationType>(\r
- &IDiaSymbol::get_locationType);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getLowerBoundId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_lowerBoundId);\r
-}\r
-\r
-DIAResult<MachineTypeEnum> DIASymbol::getMachineType() {\r
- return InternalGetDIAValue<DWORD, MachineTypeEnum>(\r
- &IDiaSymbol::get_machineType);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isManagedRef() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_managed);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getMemorySpaceKind() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_memorySpaceKind);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isMsilRef() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_msil);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_name);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isNested() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_nested);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasNoInlineAttribute() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_noInline);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasNoReturnAttribute() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_noReturn);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::getNoStackOrdering() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_noStackOrdering);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isUnreached() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_notReached);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getNumberOfAcceleratorPointerTags() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_numberOfAcceleratorPointerTags);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getNumberOfModifiers() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_numberOfModifiers);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getNumberOfRegisterIndices() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_numberOfRegisterIndices);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getNumberOfRows() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_numberOfRows);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getNumberOfColumns() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_numberOfColumns);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getObjectFileName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_objectFileName);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getOemSymbolId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_oemSymbolId);\r
-}\r
-\r
-DIAResult<LONG> DIASymbol::getOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_offset);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getOffsetInUdt() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_offsetInUdt);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasOptimizedCodeDebugInfo() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_optimizedCodeDebugInfo);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::hasOverloadedOperator() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_overloadedOperator);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isPacked() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_packed);\r
-}\r
-\r
-DIAResult<CV_CPU_TYPE_e> DIASymbol::getPlatform() {\r
- return InternalGetDIAValue<DWORD, CV_CPU_TYPE_e>(&IDiaSymbol::get_platform);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isPureVirtual() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_pure);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getRank() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_rank);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isReference() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_reference);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isRValueReference() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_RValueReference);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getRegisterId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_registerId);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getRegisterType() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_registerType);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getRelativeVirtualAddress() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_relativeVirtualAddress);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isRestrictedType() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_restrictedType);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getSamplerSlot() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_samplerSlot);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isScoped() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_scoped);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isRefUdt() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isRefUdt);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isValueUdt() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isValueUdt);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isInterfaceUdt() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isInterfaceUdt);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isCxxReturnUdt() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_isCxxReturnUdt);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getSignature() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_signature);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getSizeInUdt() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_sizeInUdt);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getSlot() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_slot);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getSourceFileName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_sourceFileName);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getStride() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_stride);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getSubTypeId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_subTypeId);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getSymbolsFileName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_symbolsFileName);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getSymIndexId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_symIndexId);\r
-}\r
-\r
-DIAResult<DiaSymTagEnum> DIASymbol::getSymTag() {\r
- return InternalGetDIAValue<DWORD, DiaSymTagEnum>(&IDiaSymbol::get_symTag);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getTargetOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_targetOffset);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getTargetRelativeVirtualAddress() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_targetRelativeVirtualAddress);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getTargetSection() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_targetSection);\r
-}\r
-\r
-DIAResult<ULONGLONG> DIASymbol::getTargetVirtualAddress() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_targetVirtualAddress);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getTextureSlot() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_textureSlot);\r
-}\r
-\r
-DIAResult<LONG> DIASymbol::getThisAdjust() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_thisAdjust);\r
-}\r
-\r
-DIAResult<THUNK_ORDINAL> DIASymbol::getThunkOrdinal() {\r
- return InternalGetDIAValue<DWORD, THUNK_ORDINAL>(\r
- &IDiaSymbol::get_thunkOrdinal);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getTimeStamp() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_timeStamp);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getToken() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_token);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getUavSlot() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_uavSlot);\r
-}\r
-\r
-DIAResult<UdtKind> DIASymbol::getUdtKind() {\r
- return InternalGetDIAValue<DWORD, UdtKind>(&IDiaSymbol::get_udtKind);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isUnalignedType() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_unalignedType);\r
-}\r
-\r
-DIAResult<DIAString> DIASymbol::getUndecoratedName() {\r
- return InternalGetDIAStringValue(&IDiaSymbol::get_undecoratedName);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getUnmodifiedTypeId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_unmodifiedTypeId);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getUpperBoundId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_upperBoundId);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isVirtual() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtual);\r
-}\r
-\r
-DIAResult<ULONGLONG> DIASymbol::getVirtualAddress() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtualAddress);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isVirtualBaseClass() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseClass);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getVirtualBaseDispIndex() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseDispIndex);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getVirtualBaseOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseOffset);\r
-}\r
-\r
-DIAResult<LONG> DIASymbol::getVirtualBasePointerOffset() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtualBasePointerOffset);\r
-}\r
-\r
-DIAResult<DWORD> DIASymbol::getVirtualTableShapeId() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_virtualTableShapeId);\r
-}\r
-\r
-DIAResult<BOOL> DIASymbol::isVolatileType() {\r
- return InternalGetDIAValue(&IDiaSymbol::get_volatileType);\r
-}\r
+//===- DIASymbol.cpp - Dump debug info from a PDB file ----------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm-pdbdump.h"
+#include "DIASymbol.h"
+
+using namespace llvm::sys::windows;
+
+DIASymbol::DIASymbol(IDiaSymbol *DiaSymbol) : Symbol(DiaSymbol) {
+ Symbol->AddRef();
+}
+
+DIASymbol::~DIASymbol() { Symbol->Release(); }
+
+void DIASymbol::fullDump(int IndentLevel) {
+ getLexicalParent().dump("Lexical parent", IndentLevel);
+ getClassParent().dump("Class parent", IndentLevel);
+ getType().dump("Type", IndentLevel);
+ getArrayIndexType().dump("Array index type", IndentLevel);
+ getVirtualTableShape().dump("Vtable shape", IndentLevel);
+ getLowerBound().dump("Lower bound", IndentLevel);
+ getUpperBound().dump("Upper bound", IndentLevel);
+ getObjectPointerType().dump("Object pointer type", IndentLevel);
+ getContainer().dump("Container", IndentLevel);
+ getVirtualBaseTableType().dump("Virtual base table type", IndentLevel);
+ getUnmodifiedType().dump("Unmodified type", IndentLevel);
+ getSubType().dump("Sub type", IndentLevel);
+ getBaseSymbol().dump("Base symbol", IndentLevel);
+
+#if (_MSC_FULL_VER >= 180031101)
+ // These methods are only available on VS 2013 SP4 and higher.
+ isPGO().dump("Is PGO", IndentLevel);
+ hasValidPGOCounts().dump("Has valid PGO counts", IndentLevel);
+ isOptimizedForSpeed().dump("Is optimized for speed", IndentLevel);
+ getPGOEntryCount().dump("PGO entry count", IndentLevel);
+ getPGOEdgeCount().dump("PGO edge count", IndentLevel);
+ getPGODynamicInstructionCount().dump("PGO dynamic instruction count",
+ IndentLevel);
+ getStaticSize().dump("Static size", IndentLevel);
+ getFinalLiveStaticSize().dump("Final live static size", IndentLevel);
+ getPhaseName().dump("Phase name", IndentLevel);
+ hasControlFlowCheck().dump("Has control flow check", IndentLevel);
+#endif
+
+ getAccess().dump("Access", IndentLevel);
+ getAddressOffset().dump("Address Offset", IndentLevel);
+ getAddressSection().dump("Address Section", IndentLevel);
+ getAddressTaken().dump("Address Taken", IndentLevel);
+ getAge().dump("Age", IndentLevel);
+ getArrayIndexTypeId().dump("Array Index Type Id", IndentLevel);
+ getBackEndMajor().dump("Back End Major", IndentLevel);
+ getBackEndMinor().dump("Back End Minor", IndentLevel);
+ getBackEndBuild().dump("Back End Build", IndentLevel);
+ getBaseDataOffset().dump("Base Data Offset", IndentLevel);
+ getBaseDataSlot().dump("Base Data Slot", IndentLevel);
+ getBaseSymbolId().dump("Base Symbol Id", IndentLevel);
+ getBaseType().dump("Base Type", IndentLevel);
+ getBitPosition().dump("Bit Position", IndentLevel);
+ getBuiltInKind().dump("Built In Kind", IndentLevel);
+ getCallingConvention().dump("Calling Convention", IndentLevel);
+ getClassParentId().dump("Class Parent Id", IndentLevel);
+ isCode().dump("Code", IndentLevel);
+ isCompilerGenerated().dump("Compiler Generated", IndentLevel);
+ getCompilerName().dump("Compiler Name", IndentLevel);
+ hasConstructor().dump("Constructor", IndentLevel);
+ isConstType().dump("Const Type", IndentLevel);
+ getCount().dump("Count", IndentLevel);
+ getCountLiveRanges().dump("Count Live Ranges", IndentLevel);
+ hasCustomCallingConvention().dump("Custom Calling Convention", IndentLevel);
+ getDataKind().dump("Data Kind", IndentLevel);
+ isEditAndContinueEnabled().dump("Edit and Continue Enabled", IndentLevel);
+ hasFarReturn().dump("Far Return", IndentLevel);
+ getFrontEndMajor().dump("Front End Major", IndentLevel);
+ getFrontEndMinor().dump("Front End Minor", IndentLevel);
+ getFrontEndBuild().dump("Front End Build", IndentLevel);
+ isFunction().dump("Function", IndentLevel);
+ getGuid().dump("GUID", IndentLevel);
+ hasAlloca().dump("Has Alloca", IndentLevel);
+ hasAssignmentOperator().dump("Has Assignment Operator", IndentLevel);
+ hasCastOperator().dump("Has Cast Operator", IndentLevel);
+ hasDebugInfo().dump("Has Debug Info", IndentLevel);
+ hasEH().dump("Has EH", IndentLevel);
+ hasEHa().dump("Has EHa", IndentLevel);
+ hasInlAsm().dump("Has Inline Asm", IndentLevel);
+ hasLongJump().dump("Has longjmp", IndentLevel);
+ hasManagedCode().dump("Has Managed Code", IndentLevel);
+ hasNestedTypes().dump("Has Nested Types", IndentLevel);
+ hasSecurityChecks().dump("Has Security Checks", IndentLevel);
+ hasSEH().dump("Has SEH", IndentLevel);
+ hasSetJump().dump("Has setjmp", IndentLevel);
+ isIndirectVirtualBaseClass().dump("Is indirect virtual base", IndentLevel);
+ hasInlineAttribute().dump("Has inline declspec", IndentLevel);
+ hasInterruptReturn().dump("Has interrupt return", IndentLevel);
+ isBaseVirtualFunction().dump("Is base virtual function", IndentLevel);
+ isAcceleratorGroupSharedLocal().dump("Is Accelerator Group Shared Local",
+ IndentLevel);
+ isAcceleratorPointerTagLiveRange().dump(
+ "Is Accelerator Pointer Tag Live Range", IndentLevel);
+ isAcceleratorStubFunction().dump("Is Accelerator Stub Function", IndentLevel);
+ isAggregated().dump("Is aggregated", IndentLevel);
+ hasCTypes().dump("Has C types", IndentLevel);
+ isCVTCIL().dump("Was converted from MSIL", IndentLevel);
+ isDataAligned().dump("Is data aligned", IndentLevel);
+ isHLSLData().dump("Is HLSL data", IndentLevel);
+ isHotpatchable().dump("Is hot-patchable", IndentLevel);
+ isLTCG().dump("Is LTCG", IndentLevel);
+ isMatrixRowMajor().dump("Is matrix row major", IndentLevel);
+ isMSILNetmodule().dump("Is MSIL .netmodule", IndentLevel);
+ isMultipleInheritance().dump("Is multiple inheritance", IndentLevel);
+ isNaked().dump("Is naked", IndentLevel);
+ isOptimizedAway().dump("Is optimized away", IndentLevel);
+ isPointerBasedOnSymbolValue().dump("Is pointer based on symbol value",
+ IndentLevel);
+ isPointerToDataMember().dump("Is pointer to data member", IndentLevel);
+ isPointerToMemberFunction().dump("Is pointer to member function",
+ IndentLevel);
+ isReturnValue().dump("Is return value", IndentLevel);
+ isSdl().dump("Is SDL", IndentLevel);
+ isSingleInheritance().dump("Is single inheritance", IndentLevel);
+ isSplitted().dump("Is splitted", IndentLevel);
+ isStatic().dump("Is staic", IndentLevel);
+ isStripped().dump("Is stripped", IndentLevel);
+ isVirtualInheritance().dump("Is virtual inheritance", IndentLevel);
+ getLanguage().dump("Language", IndentLevel);
+ getLength().dump("Length", IndentLevel);
+ getLexicalParentId().dump("Lexical parent id", IndentLevel);
+ getLibraryName().dump("Library name", IndentLevel);
+ getLiveRangeLength().dump("Live range length", IndentLevel);
+ getLiveRangeStartAddressSection().dump("Live range start address section",
+ IndentLevel);
+ getLiveRangeStartAddressOffset().dump("Live range start address offset",
+ IndentLevel);
+ getLiveRangeStartRelativeVirtualAddress().dump("Live range start address RVA",
+ IndentLevel);
+ getLocationType().dump("Location type", IndentLevel);
+ getLowerBoundId().dump("Lower bound id", IndentLevel);
+ getMachineType().dump("Machine type", IndentLevel);
+ isManagedRef().dump("Managed", IndentLevel);
+ getMemorySpaceKind().dump("Memory space kind", IndentLevel);
+ isMsilRef().dump("MSIL", IndentLevel);
+ getName().dump("Name", IndentLevel);
+ isNested().dump("Nested", IndentLevel);
+ hasNoInlineAttribute().dump("Has noinline declspec", IndentLevel);
+ hasNoReturnAttribute().dump("Has noreturn declspec", IndentLevel);
+ getNoStackOrdering().dump("No stack ordering", IndentLevel);
+ isUnreached().dump("Not reached", IndentLevel);
+ getNumberOfAcceleratorPointerTags().dump("Number of accelerator pointer tags",
+ IndentLevel);
+ getNumberOfModifiers().dump("Number of modifiers", IndentLevel);
+ getNumberOfRegisterIndices().dump("Number of register indices", IndentLevel);
+ getNumberOfRows().dump("Number of rows", IndentLevel);
+ getNumberOfColumns().dump("Number of columns", IndentLevel);
+ getObjectFileName().dump("Object file name", IndentLevel);
+ getOemSymbolId().dump("OEM symbol id", IndentLevel);
+ getOffset().dump("Offset", IndentLevel);
+ hasOptimizedCodeDebugInfo().dump("Optimized code debug info", IndentLevel);
+ hasOverloadedOperator().dump("Overloaded operator", IndentLevel);
+ isPacked().dump("Packed", IndentLevel);
+ getPlatform().dump("Platform", IndentLevel);
+ isPureVirtual().dump("Pure", IndentLevel);
+ getRank().dump("Rank", IndentLevel);
+ isReference().dump("Reference", IndentLevel);
+ getRegisterId().dump("Register ID", IndentLevel);
+ getRegisterType().dump("Register type", IndentLevel);
+ getRelativeVirtualAddress().dump("RVA", IndentLevel);
+ isRestrictedType().dump("Restricted type", IndentLevel);
+ getSamplerSlot().dump("Sampler slot", IndentLevel);
+ isScoped().dump("Scoped", IndentLevel);
+ getSignature().dump("Signature", IndentLevel);
+ getSizeInUdt().dump("Size in UDT", IndentLevel);
+ getSlot().dump("Slot", IndentLevel);
+ getSourceFileName().dump("Source file name", IndentLevel);
+ getStride().dump("Stride", IndentLevel);
+ getSubTypeId().dump("Sub type ID", IndentLevel);
+ getSymbolsFileName().dump("File name", IndentLevel);
+ getSymIndexId().dump("Sym index ID", IndentLevel);
+ getSymTag().dump("Sym tag", IndentLevel);
+ getTargetOffset().dump("Target offset", IndentLevel);
+ getTargetRelativeVirtualAddress().dump("Target RVA", IndentLevel);
+ getTargetSection().dump("Target section", IndentLevel);
+ getTargetVirtualAddress().dump("Target virtual address", IndentLevel);
+ getTextureSlot().dump("Texture slot", IndentLevel);
+ getThisAdjust().dump("This adjust", IndentLevel);
+ getThunkOrdinal().dump("Thunk ordinal", IndentLevel);
+ getTimeStamp().dump("Time stamp", IndentLevel);
+ getToken().dump("Token", IndentLevel);
+ getUavSlot().dump("UAV slot", IndentLevel);
+ getUdtKind().dump("UDT kind", IndentLevel);
+ isUnalignedType().dump("Unaligned type", IndentLevel);
+ getUndecoratedName().dump("Undecorated name", IndentLevel);
+ getUnmodifiedTypeId().dump("Unmodified type id", IndentLevel);
+ getUpperBoundId().dump("Upper bound id", IndentLevel);
+ isVirtual().dump("Virtual", IndentLevel);
+ getVirtualAddress().dump("Virtual address", IndentLevel);
+ isVirtualBaseClass().dump("Virtual base class", IndentLevel);
+ getVirtualBaseDispIndex().dump("Virtual base disp index", IndentLevel);
+ getVirtualBaseOffset().dump("Virtual base offset", IndentLevel);
+ getVirtualBasePointerOffset().dump("Virtual base pointer offset",
+ IndentLevel);
+ getVirtualTableShapeId().dump("Vtable shape ID", IndentLevel);
+ isVolatileType().dump("Volatile type", IndentLevel);
+}
+
+#if (_MSC_FULL_VER >= 180031101)
+DIAResult<BOOL> DIASymbol::isPGO() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isPGO);
+}
+
+DIAResult<BOOL> DIASymbol::hasValidPGOCounts() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasValidPGOCounts);
+}
+
+DIAResult<BOOL> DIASymbol::isOptimizedForSpeed() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedForSpeed);
+}
+
+DIAResult<DWORD> DIASymbol::getPGOEntryCount() {
+ return InternalGetDIAValue(&IDiaSymbol::get_PGOEntryCount);
+}
+
+DIAResult<DWORD> DIASymbol::getPGOEdgeCount() {
+ return InternalGetDIAValue(&IDiaSymbol::get_PGOEdgeCount);
+}
+
+DIAResult<ULONGLONG> DIASymbol::getPGODynamicInstructionCount() {
+ return InternalGetDIAValue(&IDiaSymbol::get_PGODynamicInstructionCount);
+}
+
+DIAResult<DWORD> DIASymbol::getStaticSize() {
+ return InternalGetDIAValue(&IDiaSymbol::get_staticSize);
+}
+
+DIAResult<DWORD> DIASymbol::getFinalLiveStaticSize() {
+ return InternalGetDIAValue(&IDiaSymbol::get_finalLiveStaticSize);
+}
+
+DIAResult<DIAString> DIASymbol::getPhaseName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_phaseName);
+}
+
+DIAResult<BOOL> DIASymbol::hasControlFlowCheck() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasControlFlowCheck);
+}
+#endif
+
+DIAResult<DiaSymbolPtr> DIASymbol::getClassParent() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_classParent);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getType() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(&IDiaSymbol::get_type);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getArrayIndexType() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_arrayIndexType);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getVirtualTableShape() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_virtualTableShape);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getLowerBound() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_lowerBound);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getUpperBound() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_upperBound);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getObjectPointerType() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_objectPointerType);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getContainer() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_container);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getVirtualBaseTableType() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_virtualBaseTableType);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getUnmodifiedType() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_unmodifiedType);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getSubType() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_subType);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getBaseSymbol() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_baseSymbol);
+}
+
+DIAResult<DWORD> DIASymbol::getAccess() {
+ return InternalGetDIAValue(&IDiaSymbol::get_access);
+}
+
+DIAResult<DWORD> DIASymbol::getAddressOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_addressOffset);
+}
+
+DIAResult<DWORD> DIASymbol::getAddressSection() {
+ return InternalGetDIAValue(&IDiaSymbol::get_addressSection);
+}
+
+DIAResult<BOOL> DIASymbol::getAddressTaken() {
+ return InternalGetDIAValue(&IDiaSymbol::get_addressTaken);
+}
+
+DIAResult<DWORD> DIASymbol::getAge() {
+ return InternalGetDIAValue(&IDiaSymbol::get_age);
+}
+
+DIAResult<DWORD> DIASymbol::getArrayIndexTypeId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_arrayIndexTypeId);
+}
+
+DIAResult<DWORD> DIASymbol::getBackEndMajor() {
+ return InternalGetDIAValue(&IDiaSymbol::get_backEndMajor);
+}
+
+DIAResult<DWORD> DIASymbol::getBackEndMinor() {
+
+ return InternalGetDIAValue(&IDiaSymbol::get_backEndMinor);
+}
+
+DIAResult<DWORD> DIASymbol::getBackEndBuild() {
+ return InternalGetDIAValue(&IDiaSymbol::get_backEndBuild);
+}
+
+DIAResult<DWORD> DIASymbol::getBackEndQFE() {
+ return InternalGetDIAValue(&IDiaSymbol::get_backEndQFE);
+}
+
+DIAResult<DWORD> DIASymbol::getBaseDataOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_baseDataOffset);
+}
+
+DIAResult<DWORD> DIASymbol::getBaseDataSlot() {
+ return InternalGetDIAValue(&IDiaSymbol::get_baseDataSlot);
+}
+
+DIAResult<DWORD> DIASymbol::getBaseSymbolId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_baseSymbolId);
+}
+
+DIAResult<DWORD> DIASymbol::getBaseType() {
+ return InternalGetDIAValue(&IDiaSymbol::get_baseType);
+}
+
+DIAResult<DWORD> DIASymbol::getBitPosition() {
+ return InternalGetDIAValue(&IDiaSymbol::get_bitPosition);
+}
+
+DIAResult<DWORD> DIASymbol::getBuiltInKind() {
+ return InternalGetDIAValue(&IDiaSymbol::get_builtInKind);
+}
+
+DIAResult<CV_call_e> DIASymbol::getCallingConvention() {
+ return InternalGetDIAValue<DWORD, CV_call_e>(
+ &IDiaSymbol::get_callingConvention);
+}
+
+DIAResult<DWORD> DIASymbol::getClassParentId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_classParentId);
+}
+
+DIAResult<BOOL> DIASymbol::isCode() {
+ return InternalGetDIAValue(&IDiaSymbol::get_code);
+}
+
+DIAResult<BOOL> DIASymbol::isCompilerGenerated() {
+ return InternalGetDIAValue(&IDiaSymbol::get_compilerGenerated);
+}
+
+DIAResult<DIAString> DIASymbol::getCompilerName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_compilerName);
+}
+
+DIAResult<BOOL> DIASymbol::hasConstructor() {
+ return InternalGetDIAValue(&IDiaSymbol::get_constructor);
+}
+
+DIAResult<BOOL> DIASymbol::isConstType() {
+ return InternalGetDIAValue(&IDiaSymbol::get_constType);
+}
+
+DIAResult<DWORD> DIASymbol::getCount() {
+ return InternalGetDIAValue(&IDiaSymbol::get_count);
+}
+
+DIAResult<DWORD> DIASymbol::getCountLiveRanges() {
+ return InternalGetDIAValue(&IDiaSymbol::get_countLiveRanges);
+}
+
+DIAResult<BOOL> DIASymbol::hasCustomCallingConvention() {
+ return InternalGetDIAValue(&IDiaSymbol::get_customCallingConvention);
+}
+
+DIAResult<DataKind> DIASymbol::getDataKind() {
+ return InternalGetDIAValue<DWORD, DataKind>(&IDiaSymbol::get_dataKind);
+}
+
+DIAResult<BOOL> DIASymbol::isEditAndContinueEnabled() {
+ return InternalGetDIAValue(&IDiaSymbol::get_editAndContinueEnabled);
+}
+
+DIAResult<BOOL> DIASymbol::hasFarReturn() {
+ return InternalGetDIAValue(&IDiaSymbol::get_farReturn);
+}
+
+DIAResult<DWORD> DIASymbol::getFrontEndMajor() {
+ return InternalGetDIAValue(&IDiaSymbol::get_frontEndMajor);
+}
+
+DIAResult<DWORD> DIASymbol::getFrontEndMinor() {
+ return InternalGetDIAValue(&IDiaSymbol::get_frontEndMinor);
+}
+
+DIAResult<DWORD> DIASymbol::getFrontEndBuild() {
+ return InternalGetDIAValue(&IDiaSymbol::get_frontEndBuild);
+}
+
+DIAResult<DWORD> DIASymbol::getFrontEndQFE() {
+ return InternalGetDIAValue(&IDiaSymbol::get_frontEndQFE);
+}
+
+DIAResult<BOOL> DIASymbol::isFunction() {
+ return InternalGetDIAValue(&IDiaSymbol::get_function);
+}
+
+DIAResult<GUID> DIASymbol::getGuid() {
+ return InternalGetDIAValue(&IDiaSymbol::get_guid);
+}
+
+DIAResult<BOOL> DIASymbol::hasAlloca() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasAlloca);
+}
+
+DIAResult<BOOL> DIASymbol::hasAssignmentOperator() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasAssignmentOperator);
+}
+
+DIAResult<BOOL> DIASymbol::hasCastOperator() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasCastOperator);
+}
+
+DIAResult<BOOL> DIASymbol::hasDebugInfo() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasDebugInfo);
+}
+
+DIAResult<BOOL> DIASymbol::hasEH() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasEH);
+}
+
+DIAResult<BOOL> DIASymbol::hasEHa() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasEHa);
+}
+
+DIAResult<BOOL> DIASymbol::hasInlAsm() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasInlAsm);
+}
+
+DIAResult<BOOL> DIASymbol::hasLongJump() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasLongJump);
+}
+
+DIAResult<BOOL> DIASymbol::hasManagedCode() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasManagedCode);
+}
+
+DIAResult<BOOL> DIASymbol::hasNestedTypes() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasNestedTypes);
+}
+
+DIAResult<BOOL> DIASymbol::hasSecurityChecks() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasSecurityChecks);
+}
+
+DIAResult<BOOL> DIASymbol::hasSEH() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasSEH);
+}
+
+DIAResult<BOOL> DIASymbol::hasSetJump() {
+ return InternalGetDIAValue(&IDiaSymbol::get_hasSetJump);
+}
+
+DIAResult<BOOL> DIASymbol::isIndirectVirtualBaseClass() {
+ return InternalGetDIAValue(&IDiaSymbol::get_indirectVirtualBaseClass);
+}
+
+DIAResult<BOOL> DIASymbol::hasInlineAttribute() {
+ return InternalGetDIAValue(&IDiaSymbol::get_inlSpec);
+}
+
+DIAResult<BOOL> DIASymbol::hasInterruptReturn() {
+ return InternalGetDIAValue(&IDiaSymbol::get_interruptReturn);
+}
+
+DIAResult<BOOL> DIASymbol::isBaseVirtualFunction() {
+ return InternalGetDIAValue(&IDiaSymbol::get_intro);
+}
+
+DIAResult<BOOL> DIASymbol::isIntrinsic() {
+ return InternalGetDIAValue(&IDiaSymbol::get_intrinsic);
+}
+
+DIAResult<BOOL> DIASymbol::isAcceleratorGroupSharedLocal() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorGroupSharedLocal);
+}
+
+DIAResult<BOOL> DIASymbol::isAcceleratorPointerTagLiveRange() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorPointerTagLiveRange);
+}
+
+DIAResult<BOOL> DIASymbol::isAcceleratorStubFunction() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isAcceleratorStubFunction);
+}
+
+DIAResult<BOOL> DIASymbol::isAggregated() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isAggregated);
+}
+
+DIAResult<BOOL> DIASymbol::isConstructorVirtualBase() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isConstructorVirtualBase);
+}
+
+DIAResult<BOOL> DIASymbol::hasStrictGSCheck() {
+ return InternalGetDIAValue(&IDiaSymbol::get_strictGSCheck);
+}
+
+DIAResult<BOOL> DIASymbol::isLocationControlFlowDependent() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isLocationControlFlowDependent);
+}
+
+DIAResult<BOOL> DIASymbol::hasCTypes() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isCTypes);
+}
+
+DIAResult<BOOL> DIASymbol::isCVTCIL() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isCVTCIL);
+}
+
+DIAResult<BOOL> DIASymbol::isDataAligned() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isDataAligned);
+}
+
+DIAResult<BOOL> DIASymbol::isHLSLData() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isHLSLData);
+}
+
+DIAResult<BOOL> DIASymbol::isHotpatchable() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isHotpatchable);
+}
+
+DIAResult<BOOL> DIASymbol::isLTCG() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isLTCG);
+}
+
+DIAResult<BOOL> DIASymbol::isMatrixRowMajor() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isMatrixRowMajor);
+}
+
+DIAResult<BOOL> DIASymbol::isMSILNetmodule() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isMSILNetmodule);
+}
+
+DIAResult<BOOL> DIASymbol::isMultipleInheritance() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isMultipleInheritance);
+}
+
+DIAResult<BOOL> DIASymbol::isNaked() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isNaked);
+}
+
+DIAResult<BOOL> DIASymbol::isOptimizedAway() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isOptimizedAway);
+}
+
+DIAResult<BOOL> DIASymbol::isPointerBasedOnSymbolValue() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isPointerBasedOnSymbolValue);
+}
+
+DIAResult<BOOL> DIASymbol::isPointerToDataMember() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isPointerToDataMember);
+}
+
+DIAResult<BOOL> DIASymbol::isPointerToMemberFunction() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isPointerToMemberFunction);
+}
+
+DIAResult<BOOL> DIASymbol::isReturnValue() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isReturnValue);
+}
+
+DIAResult<BOOL> DIASymbol::isSdl() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isSdl);
+}
+
+DIAResult<BOOL> DIASymbol::isSingleInheritance() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isSingleInheritance);
+}
+
+DIAResult<BOOL> DIASymbol::isSplitted() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isSplitted);
+}
+
+DIAResult<BOOL> DIASymbol::isStatic() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isStatic);
+}
+
+DIAResult<BOOL> DIASymbol::isStripped() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isStripped);
+}
+
+DIAResult<BOOL> DIASymbol::isVirtualInheritance() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isVirtualInheritance);
+}
+
+DIAResult<CV_CFL_LANG> DIASymbol::getLanguage() {
+ return InternalGetDIAValue<DWORD, CV_CFL_LANG>(&IDiaSymbol::get_language);
+}
+
+DIAResult<BOOL> DIASymbol::isSafeBuffers() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isSafeBuffers);
+}
+
+DIAResult<ULONGLONG> DIASymbol::getLength() {
+ return InternalGetDIAValue(&IDiaSymbol::get_length);
+}
+
+DIAResult<DWORD> DIASymbol::getLexicalParentId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_lexicalParentId);
+}
+
+DIAResult<DiaSymbolPtr> DIASymbol::getLexicalParent() {
+ return InternalGetDIAValue<IDiaSymbol *, DiaSymbolPtr>(
+ &IDiaSymbol::get_lexicalParent);
+}
+
+DIAResult<DWORD> DIASymbol::getLocalBasePointerRegisterId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_localBasePointerRegisterId);
+}
+
+DIAResult<DIAString> DIASymbol::getLibraryName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_libraryName);
+}
+
+DIAResult<ULONGLONG> DIASymbol::getLiveRangeLength() {
+ return InternalGetDIAValue(&IDiaSymbol::get_liveRangeLength);
+}
+
+DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressSection() {
+ return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressSection);
+}
+
+DIAResult<DWORD> DIASymbol::getLiveRangeStartAddressOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_liveRangeStartAddressOffset);
+}
+
+DIAResult<DWORD> DIASymbol::getLiveRangeStartRelativeVirtualAddress() {
+ return InternalGetDIAValue(
+ &IDiaSymbol::get_liveRangeStartRelativeVirtualAddress);
+}
+
+DIAResult<LocationType> DIASymbol::getLocationType() {
+ return InternalGetDIAValue<DWORD, LocationType>(
+ &IDiaSymbol::get_locationType);
+}
+
+DIAResult<DWORD> DIASymbol::getLowerBoundId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_lowerBoundId);
+}
+
+DIAResult<MachineTypeEnum> DIASymbol::getMachineType() {
+ return InternalGetDIAValue<DWORD, MachineTypeEnum>(
+ &IDiaSymbol::get_machineType);
+}
+
+DIAResult<BOOL> DIASymbol::isManagedRef() {
+ return InternalGetDIAValue(&IDiaSymbol::get_managed);
+}
+
+DIAResult<DWORD> DIASymbol::getMemorySpaceKind() {
+ return InternalGetDIAValue(&IDiaSymbol::get_memorySpaceKind);
+}
+
+DIAResult<BOOL> DIASymbol::isMsilRef() {
+ return InternalGetDIAValue(&IDiaSymbol::get_msil);
+}
+
+DIAResult<DIAString> DIASymbol::getName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_name);
+}
+
+DIAResult<BOOL> DIASymbol::isNested() {
+ return InternalGetDIAValue(&IDiaSymbol::get_nested);
+}
+
+DIAResult<BOOL> DIASymbol::hasNoInlineAttribute() {
+ return InternalGetDIAValue(&IDiaSymbol::get_noInline);
+}
+
+DIAResult<BOOL> DIASymbol::hasNoReturnAttribute() {
+ return InternalGetDIAValue(&IDiaSymbol::get_noReturn);
+}
+
+DIAResult<BOOL> DIASymbol::getNoStackOrdering() {
+ return InternalGetDIAValue(&IDiaSymbol::get_noStackOrdering);
+}
+
+DIAResult<BOOL> DIASymbol::isUnreached() {
+ return InternalGetDIAValue(&IDiaSymbol::get_notReached);
+}
+
+DIAResult<DWORD> DIASymbol::getNumberOfAcceleratorPointerTags() {
+ return InternalGetDIAValue(&IDiaSymbol::get_numberOfAcceleratorPointerTags);
+}
+
+DIAResult<DWORD> DIASymbol::getNumberOfModifiers() {
+ return InternalGetDIAValue(&IDiaSymbol::get_numberOfModifiers);
+}
+
+DIAResult<DWORD> DIASymbol::getNumberOfRegisterIndices() {
+ return InternalGetDIAValue(&IDiaSymbol::get_numberOfRegisterIndices);
+}
+
+DIAResult<DWORD> DIASymbol::getNumberOfRows() {
+ return InternalGetDIAValue(&IDiaSymbol::get_numberOfRows);
+}
+
+DIAResult<DWORD> DIASymbol::getNumberOfColumns() {
+ return InternalGetDIAValue(&IDiaSymbol::get_numberOfColumns);
+}
+
+DIAResult<DIAString> DIASymbol::getObjectFileName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_objectFileName);
+}
+
+DIAResult<DWORD> DIASymbol::getOemSymbolId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_oemSymbolId);
+}
+
+DIAResult<LONG> DIASymbol::getOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_offset);
+}
+
+DIAResult<DWORD> DIASymbol::getOffsetInUdt() {
+ return InternalGetDIAValue(&IDiaSymbol::get_offsetInUdt);
+}
+
+DIAResult<BOOL> DIASymbol::hasOptimizedCodeDebugInfo() {
+ return InternalGetDIAValue(&IDiaSymbol::get_optimizedCodeDebugInfo);
+}
+
+DIAResult<BOOL> DIASymbol::hasOverloadedOperator() {
+ return InternalGetDIAValue(&IDiaSymbol::get_overloadedOperator);
+}
+
+DIAResult<BOOL> DIASymbol::isPacked() {
+ return InternalGetDIAValue(&IDiaSymbol::get_packed);
+}
+
+DIAResult<CV_CPU_TYPE_e> DIASymbol::getPlatform() {
+ return InternalGetDIAValue<DWORD, CV_CPU_TYPE_e>(&IDiaSymbol::get_platform);
+}
+
+DIAResult<BOOL> DIASymbol::isPureVirtual() {
+ return InternalGetDIAValue(&IDiaSymbol::get_pure);
+}
+
+DIAResult<DWORD> DIASymbol::getRank() {
+ return InternalGetDIAValue(&IDiaSymbol::get_rank);
+}
+
+DIAResult<BOOL> DIASymbol::isReference() {
+ return InternalGetDIAValue(&IDiaSymbol::get_reference);
+}
+
+DIAResult<BOOL> DIASymbol::isRValueReference() {
+ return InternalGetDIAValue(&IDiaSymbol::get_RValueReference);
+}
+
+DIAResult<DWORD> DIASymbol::getRegisterId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_registerId);
+}
+
+DIAResult<DWORD> DIASymbol::getRegisterType() {
+ return InternalGetDIAValue(&IDiaSymbol::get_registerType);
+}
+
+DIAResult<DWORD> DIASymbol::getRelativeVirtualAddress() {
+ return InternalGetDIAValue(&IDiaSymbol::get_relativeVirtualAddress);
+}
+
+DIAResult<BOOL> DIASymbol::isRestrictedType() {
+ return InternalGetDIAValue(&IDiaSymbol::get_restrictedType);
+}
+
+DIAResult<DWORD> DIASymbol::getSamplerSlot() {
+ return InternalGetDIAValue(&IDiaSymbol::get_samplerSlot);
+}
+
+DIAResult<BOOL> DIASymbol::isScoped() {
+ return InternalGetDIAValue(&IDiaSymbol::get_scoped);
+}
+
+DIAResult<BOOL> DIASymbol::isRefUdt() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isRefUdt);
+}
+
+DIAResult<BOOL> DIASymbol::isValueUdt() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isValueUdt);
+}
+
+DIAResult<BOOL> DIASymbol::isInterfaceUdt() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isInterfaceUdt);
+}
+
+DIAResult<BOOL> DIASymbol::isCxxReturnUdt() {
+ return InternalGetDIAValue(&IDiaSymbol::get_isCxxReturnUdt);
+}
+
+DIAResult<DWORD> DIASymbol::getSignature() {
+ return InternalGetDIAValue(&IDiaSymbol::get_signature);
+}
+
+DIAResult<DWORD> DIASymbol::getSizeInUdt() {
+ return InternalGetDIAValue(&IDiaSymbol::get_sizeInUdt);
+}
+
+DIAResult<DWORD> DIASymbol::getSlot() {
+ return InternalGetDIAValue(&IDiaSymbol::get_slot);
+}
+
+DIAResult<DIAString> DIASymbol::getSourceFileName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_sourceFileName);
+}
+
+DIAResult<DWORD> DIASymbol::getStride() {
+ return InternalGetDIAValue(&IDiaSymbol::get_stride);
+}
+
+DIAResult<DWORD> DIASymbol::getSubTypeId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_subTypeId);
+}
+
+DIAResult<DIAString> DIASymbol::getSymbolsFileName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_symbolsFileName);
+}
+
+DIAResult<DWORD> DIASymbol::getSymIndexId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_symIndexId);
+}
+
+DIAResult<DiaSymTagEnum> DIASymbol::getSymTag() {
+ return InternalGetDIAValue<DWORD, DiaSymTagEnum>(&IDiaSymbol::get_symTag);
+}
+
+DIAResult<DWORD> DIASymbol::getTargetOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_targetOffset);
+}
+
+DIAResult<DWORD> DIASymbol::getTargetRelativeVirtualAddress() {
+ return InternalGetDIAValue(&IDiaSymbol::get_targetRelativeVirtualAddress);
+}
+
+DIAResult<DWORD> DIASymbol::getTargetSection() {
+ return InternalGetDIAValue(&IDiaSymbol::get_targetSection);
+}
+
+DIAResult<ULONGLONG> DIASymbol::getTargetVirtualAddress() {
+ return InternalGetDIAValue(&IDiaSymbol::get_targetVirtualAddress);
+}
+
+DIAResult<DWORD> DIASymbol::getTextureSlot() {
+ return InternalGetDIAValue(&IDiaSymbol::get_textureSlot);
+}
+
+DIAResult<LONG> DIASymbol::getThisAdjust() {
+ return InternalGetDIAValue(&IDiaSymbol::get_thisAdjust);
+}
+
+DIAResult<THUNK_ORDINAL> DIASymbol::getThunkOrdinal() {
+ return InternalGetDIAValue<DWORD, THUNK_ORDINAL>(
+ &IDiaSymbol::get_thunkOrdinal);
+}
+
+DIAResult<DWORD> DIASymbol::getTimeStamp() {
+ return InternalGetDIAValue(&IDiaSymbol::get_timeStamp);
+}
+
+DIAResult<DWORD> DIASymbol::getToken() {
+ return InternalGetDIAValue(&IDiaSymbol::get_token);
+}
+
+DIAResult<DWORD> DIASymbol::getUavSlot() {
+ return InternalGetDIAValue(&IDiaSymbol::get_uavSlot);
+}
+
+DIAResult<UdtKind> DIASymbol::getUdtKind() {
+ return InternalGetDIAValue<DWORD, UdtKind>(&IDiaSymbol::get_udtKind);
+}
+
+DIAResult<BOOL> DIASymbol::isUnalignedType() {
+ return InternalGetDIAValue(&IDiaSymbol::get_unalignedType);
+}
+
+DIAResult<DIAString> DIASymbol::getUndecoratedName() {
+ return InternalGetDIAStringValue(&IDiaSymbol::get_undecoratedName);
+}
+
+DIAResult<DWORD> DIASymbol::getUnmodifiedTypeId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_unmodifiedTypeId);
+}
+
+DIAResult<DWORD> DIASymbol::getUpperBoundId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_upperBoundId);
+}
+
+DIAResult<BOOL> DIASymbol::isVirtual() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtual);
+}
+
+DIAResult<ULONGLONG> DIASymbol::getVirtualAddress() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtualAddress);
+}
+
+DIAResult<BOOL> DIASymbol::isVirtualBaseClass() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseClass);
+}
+
+DIAResult<DWORD> DIASymbol::getVirtualBaseDispIndex() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseDispIndex);
+}
+
+DIAResult<DWORD> DIASymbol::getVirtualBaseOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtualBaseOffset);
+}
+
+DIAResult<LONG> DIASymbol::getVirtualBasePointerOffset() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtualBasePointerOffset);
+}
+
+DIAResult<DWORD> DIASymbol::getVirtualTableShapeId() {
+ return InternalGetDIAValue(&IDiaSymbol::get_virtualTableShapeId);
+}
+
+DIAResult<BOOL> DIASymbol::isVolatileType() {
+ return InternalGetDIAValue(&IDiaSymbol::get_volatileType);
+}