13#ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
14#define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
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) { \
522#define CV_REGISTERS_ALL
523#define CV_REGISTER(name, value) name = value,
524#include "CodeViewRegisters.def"
526#undef CV_REGISTERS_ALL
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
@ ChangeCodeLengthAndCodeOffset
@ ChangeCodeOffsetAndLineOffset
PointerMode
Equivalent to CV_ptrmode_e.
@ PointerToMemberFunction
ProcSymFlags
Corresponds to the CV_PROCFLAGS bitfield.
PointerOptions
Equivalent to misc lfPointerAttr bitfields.
LocalSymFlags
Corresponds to CV_LVARFLAGS bitfield.
MethodKind
Part of member attribute flags. (CV_methodprop_e)
CompileSym2Flags
Corresponds to COMPILESYM2::Flags bitfield.
PointerKind
Equivalent to CV_ptrtype_e.
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
CompileSym3Flags
Corresponds to COMPILESYM3::Flags bitfield.
@ HasConstructorOrDestructor
@ HasOverloadedAssignmentOperator
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
@ MultipleInheritanceData
@ SingleInheritanceFunction
@ VirtualInheritanceFunction
@ MultipleInheritanceFunction
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
SymbolRecordKind
Distinguishes individual records in the Symbols subsection of a .debug$S section.
uint32_t alignOf(CodeViewContainer Container)
MethodOptions
Equivalent to CV_fldattr_t bitfield.
@ ConstructorWithVirtualBases
MemberAccess
Source-level access specifier. (CV_access_e)
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
EncodedFramePtrReg
Two-bit value indicating which register is the designated frame pointer register.
RegisterId decodeFramePtrReg(EncodedFramePtrReg EncodedReg, CPUType CPU)
TypeRecordKind
Distinguishes individual records in .debug$T or .debug$P section or PDB type stream.
SymbolKind
Duplicate copy of the above enum, but using the official CV names.
ModifierOptions
Equivalent to CV_modifier_t.
@ ProfileGuidedOptimization
@ NoStackOrderingForSecurityChecks
@ EncodedLocalBasePointerMask
@ AsynchronousExceptionHandling
@ HasStructuredExceptionHandling
@ EncodedParamBasePointerMask
PublicSymFlags
Corresponds to the CV_PUBSYMFLAGS bitfield.
LabelType
Equivalent to CV_LABEL_TYPE_e.
EncodedFramePtrReg encodeFramePtrReg(RegisterId Reg, CPUType CPU)
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration in the Microsoft Debug Interface Access SDK.
@ D
The DMD & Swift compilers emit 'D' and 'S', respectively, for the CV source language.
This is an optimization pass for GlobalISel generic memory operations.
CPURegister(CPUType Cpu, codeview::RegisterId Reg)
support::ulittle32_t Local
support::ulittle32_t Global
support::ulittle32_t Count
support::ulittle32_t ModuleNameOffset
Data in the SUBSEC_FRAMEDATA subection.
support::ulittle16_t PrologSize
support::ulittle32_t ParamsSize
support::ulittle32_t FrameFunc
support::ulittle32_t RvaStart
support::ulittle32_t Flags
support::ulittle32_t LocalSize
support::ulittle32_t CodeSize
support::ulittle16_t SavedRegsSize
support::ulittle32_t MaxStackSize