Go to the documentation of this file.
13 #ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
14 #define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
17 #include <type_traits>
27 #define TYPE_RECORD(lf_ename, value, name) name = value,
28 #include "CodeViewTypes.def"
34 #define CV_TYPE(name, val) name = val,
35 #include "CodeViewTypes.def"
41 #define SYMBOL_RECORD(lf_ename, value, name) name = value,
42 #include "CodeViewSymbols.def"
48 #define CV_SYMBOL(name, val) name = val,
49 #include "CodeViewSymbols.def"
52 #define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class) \
53 inline Class operator|(Class a, Class b) { \
54 return static_cast<Class>(static_cast<std::underlying_type_t<Class>>(a) | \
55 static_cast<std::underlying_type_t<Class>>(b)); \
57 inline Class operator&(Class a, Class b) { \
58 return static_cast<Class>(static_cast<std::underlying_type_t<Class>>(a) & \
59 static_cast<std::underlying_type_t<Class>>(b)); \
61 inline Class operator~(Class a) { \
62 return static_cast<Class>(~static_cast<std::underlying_type_t<Class>>(a)); \
64 inline Class &operator|=(Class &a, Class b) { \
68 inline Class &operator&=(Class &a, Class b) { \
520 #define CV_REGISTERS_ALL
521 #define CV_REGISTER(name, value) name = value,
522 #include "CodeViewRegisters.def"
524 #undef CV_REGISTERS_ALL
CPURegister(CPUType Cpu, codeview::RegisterId Reg)
MemberAccess
Source-level access specifier. (CV_access_e)
This is an optimization pass for GlobalISel generic memory operations.
ModifierOptions
Equivalent to CV_modifier_t.
SymbolKind
Duplicate copy of the above enum, but using the official CV names.
ProcSymFlags
Corresponds to the CV_PROCFLAGS bitfield.
@ HasConstructorOrDestructor
Reg
All possible values of the reg field in the ModR/M byte.
@ VirtualInheritanceFunction
@ ConstructorWithVirtualBases
Data in the SUBSEC_FRAMEDATA subection.
LabelType
Equivalent to CV_LABEL_TYPE_e.
@ AsynchronousExceptionHandling
@ ProfileGuidedOptimization
support::ulittle32_t Local
EncodedFramePtrReg
Two-bit value indicating which register is the designated frame pointer register.
support::ulittle32_t ModuleNameOffset
@ SingleInheritanceFunction
(vector float) vec_cmpeq(*A, *B) C
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
@ EncodedLocalBasePointerMask
support::ulittle16_t SavedRegsSize
PointerOptions
Equivalent to misc lfPointerAttr bitfields.
MethodKind
Part of member attribute flags. (CV_methodprop_e)
support::ulittle32_t CodeSize
support::ulittle32_t Flags
TypeRecordKind
Distinguishes individual records in .debug$T or .debug$P section or PDB type stream.
support::ulittle32_t RvaStart
support::ulittle32_t Count
PointerMode
Equivalent to CV_ptrmode_e.
uint32_t alignOf(CodeViewContainer Container)
support::ulittle32_t LocalSize
PublicSymFlags
Corresponds to the CV_PUBSYMFLAGS bitfield.
support::ulittle32_t ParamsSize
support::ulittle32_t MaxStackSize
support::ulittle32_t Global
@ NoStackOrderingForSecurityChecks
@ D
The DMD & Swift compilers emit 'D' and 'S', respectively, for the CV source language.
support::ulittle32_t FrameFunc
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn....
EncodedFramePtrReg encodeFramePtrReg(RegisterId Reg, CPUType CPU)
@ HasOverloadedAssignmentOperator
@ HasStructuredExceptionHandling
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
@ ChangeCodeLengthAndCodeOffset
CompileSym2Flags
Corresponds to COMPILESYM2::Flags bitfield.
@ EncodedParamBasePointerMask
constexpr std::nullopt_t None
@ PointerToMemberFunction
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
SymbolRecordKind
Distinguishes individual records in the Symbols subsection of a .debug$S section.
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
LocalSymFlags
Corresponds to CV_LVARFLAGS bitfield.
std::optional< std::vector< StOtherPiece > > Other
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
@ ChangeCodeOffsetAndLineOffset
PointerKind
Equivalent to CV_ptrtype_e.
@ MultipleInheritanceData
support::ulittle16_t PrologSize
CompileSym3Flags
Corresponds to COMPILESYM3::Flags bitfield.
@ MultipleInheritanceFunction
RegisterId decodeFramePtrReg(EncodedFramePtrReg EncodedReg, CPUType CPU)
MethodOptions
Equivalent to CV_fldattr_t bitfield.