Go to the documentation of this file.
11 #include <type_traits>
14 using namespace codeview;
16 #define CV_ENUM_CLASS_ENT(enum_class, enum) \
17 { #enum, std::underlying_type < enum_class > ::type(enum_class::enum) }
19 #define CV_ENUM_ENT(ns, enum) \
23 #define CV_SYMBOL(enum, val) {#enum, enum},
24 #include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
29 #define CV_TYPE(name, val) {#name, name},
30 #include "llvm/DebugInfo/CodeView/CodeViewTypes.def"
35 #define CV_REGISTERS_X86
36 #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
37 #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
39 #undef CV_REGISTERS_X86
43 #define CV_REGISTERS_ARM
44 #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
45 #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
47 #undef CV_REGISTERS_ARM
51 #define CV_REGISTERS_ARM64
52 #define CV_REGISTER(name, val) CV_ENUM_CLASS_ENT(RegisterId, name),
53 #include "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
55 #undef CV_REGISTERS_ARM64
@ IMAGE_SCN_ALIGN_64BYTES
MemberAccess
Source-level access specifier. (CV_access_e)
@ IMAGE_SCN_ALIGN_2048BYTES
static const EnumEntry< uint16_t > MethodOptionNames[]
ArrayRef< EnumEntry< TypeLeafKind > > getTypeLeafNames()
This is an optimization pass for GlobalISel generic memory operations.
@ IMAGE_SCN_LNK_NRELOC_OVFL
@ IMAGE_SCN_ALIGN_16BYTES
@ IMAGE_SCN_CNT_UNINITIALIZED_DATA
ArrayRef< EnumEntry< uint16_t > > getMemberKindNames()
@ IMAGE_SCN_ALIGN_256BYTES
ArrayRef< EnumEntry< uint32_t > > getCompileSym3FlagNames()
ModifierOptions
Equivalent to CV_modifier_t.
ProcSymFlags
Corresponds to the CV_PROCFLAGS bitfield.
@ IMAGE_SCN_MEM_NOT_PAGED
static const EnumEntry< uint32_t > CompileSym3FlagNames[]
@ HasConstructorOrDestructor
static const EnumEntry< uint16_t > TypeModifierNames[]
@ IMAGE_SCN_MEM_DISCARDABLE
static const EnumEntry< uint32_t > PublicSymFlagNames[]
@ VirtualInheritanceFunction
ArrayRef< EnumEntry< uint16_t > > getLocalFlagNames()
@ ConstructorWithVirtualBases
Data in the SUBSEC_FRAMEDATA subection.
ArrayRef< EnumEntry< uint16_t > > getTypeModifierNames()
static const EnumEntry< uint8_t > ProcSymFlagNames[]
@ IMAGE_SCN_ALIGN_512BYTES
LabelType
Equivalent to CV_LABEL_TYPE_e.
@ AsynchronousExceptionHandling
ArrayRef< EnumEntry< COFF::SectionCharacteristics > > getImageSectionCharacteristicNames()
#define CV_ENUM_CLASS_ENT(enum_class, enum)
@ ProfileGuidedOptimization
ArrayRef< EnumEntry< uint16_t > > getMethodOptionNames()
@ IMAGE_SCN_CNT_INITIALIZED_DATA
ArrayRef< EnumEntry< uint8_t > > getThunkOrdinalNames()
static const EnumEntry< uint8_t > ThunkOrdinalNames[]
@ SingleInheritanceFunction
A class that wrap the SHA1 algorithm.
(vector float) vec_cmpeq(*A, *B) C
@ EncodedLocalBasePointerMask
static const EnumEntry< COFF::SectionCharacteristics > ImageSectionCharacteristicNames[]
static const EnumEntry< uint16_t > RegisterNames_ARM64[]
static const EnumEntry< uint32_t > FileChecksumNames[]
MethodKind
Part of member attribute flags. (CV_methodprop_e)
ArrayRef< EnumEntry< uint32_t > > getPublicSymFlagNames()
ArrayRef< EnumEntry< uint8_t > > getFunctionOptionEnum()
@ IMAGE_SCN_ALIGN_32BYTES
ArrayRef< EnumEntry< uint8_t > > getProcSymFlagNames()
static const EnumEntry< TypeLeafKind > TypeLeafNames[]
ArrayRef< EnumEntry< uint32_t > > getFileChecksumNames()
ArrayRef< EnumEntry< uint8_t > > getPtrKindNames()
#define CV_ENUM_ENT(ns, enum)
ArrayRef< EnumEntry< uint16_t > > getLabelTypeEnum()
PointerMode
Equivalent to CV_ptrmode_e.
ArrayRef< EnumEntry< unsigned > > getCPUTypeNames()
@ IMAGE_SCN_MEM_PURGEABLE
@ IMAGE_SCN_ALIGN_8192BYTES
static const EnumEntry< uint16_t > LabelTypeEnum[]
PublicSymFlags
Corresponds to the CV_PUBSYMFLAGS bitfield.
static const EnumEntry< unsigned > CPUTypeNames[]
ArrayRef< EnumEntry< uint8_t > > getPtrModeNames()
static const EnumEntry< uint8_t > FunctionOptionEnum[]
static const EnumEntry< codeview::SourceLanguage > SourceLanguages[]
static const EnumEntry< uint16_t > PtrMemberRepNames[]
static const EnumEntry< uint16_t > TrampolineNames[]
static const EnumEntry< uint16_t > ClassOptionNames[]
@ NoStackOrderingForSecurityChecks
ArrayRef< EnumEntry< uint8_t > > getFrameCookieKindNames()
@ D
The DMD & Swift compilers emit 'D' and 'S', respectively, for the CV source language.
static const EnumEntry< uint8_t > MemberAccessNames[]
ArrayRef< EnumEntry< uint16_t > > getPtrMemberRepNames()
ArrayRef< EnumEntry< uint8_t > > getMemberAccessNames()
ArrayRef< EnumEntry< SymbolKind > > getSymbolTypeNames()
static const EnumEntry< uint32_t > FrameProcSymFlagNames[]
static const EnumEntry< uint8_t > PtrKindNames[]
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn....
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
static const EnumEntry< uint8_t > FrameCookieKinds[]
@ IMAGE_SCN_ALIGN_4096BYTES
@ HasOverloadedAssignmentOperator
@ IMAGE_SCN_ALIGN_128BYTES
ArrayRef< EnumEntry< SourceLanguage > > getSourceLanguageNames()
static const EnumEntry< uint8_t > PtrModeNames[]
@ HasStructuredExceptionHandling
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
static const EnumEntry< uint16_t > LocalFlags[]
CompileSym2Flags
Corresponds to COMPILESYM2::Flags bitfield.
@ EncodedParamBasePointerMask
static const EnumEntry< uint32_t > CompileSym2FlagNames[]
ArrayRef< EnumEntry< uint16_t > > getTrampolineNames()
ArrayRef< EnumEntry< uint32_t > > getModuleSubstreamKindNames()
static const EnumEntry< uint16_t > RegisterNames_ARM[]
@ PointerToMemberFunction
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
ArrayRef< EnumEntry< uint32_t > > getFrameProcSymFlagNames()
@ IMAGE_SCN_ALIGN_1024BYTES
ArrayRef< EnumEntry< uint32_t > > getCompileSym2FlagNames()
ArrayRef< T > makeArrayRef(const T &OneElt)
Construct an ArrayRef from a single element.
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
LocalSymFlags
Corresponds to CV_LVARFLAGS bitfield.
static const EnumEntry< uint16_t > ExportSymFlagNames[]
@ IMAGE_SCN_MEM_NOT_CACHED
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
static const EnumEntry< uint16_t > RegisterNames_X86[]
static const EnumEntry< uint8_t > CallingConventions[]
static const EnumEntry< SymbolKind > SymbolTypeNames[]
PointerKind
Equivalent to CV_ptrtype_e.
ArrayRef< EnumEntry< uint8_t > > getCallingConventions()
@ MultipleInheritanceData
ArrayRef< EnumEntry< uint16_t > > getExportSymFlagNames()
CompileSym3Flags
Corresponds to COMPILESYM3::Flags bitfield.
@ MultipleInheritanceFunction
static const EnumEntry< uint16_t > MemberKindNames[]
ArrayRef< EnumEntry< uint16_t > > getClassOptionNames()
static const EnumEntry< uint32_t > ModuleSubstreamKindNames[]
ArrayRef< EnumEntry< uint16_t > > getRegisterNames(CPUType Cpu)
MethodOptions
Equivalent to CV_fldattr_t bitfield.