13#ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
14#define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
28#define TYPE_RECORD(lf_ename, value, name) name = value,
29#include "CodeViewTypes.def"
35#define CV_TYPE(name, val) name = val,
36#include "CodeViewTypes.def"
42#define SYMBOL_RECORD(lf_ename, value, name) name = value,
43#include "CodeViewSymbols.def"
49#define CV_SYMBOL(name, val) name = val,
50#include "CodeViewSymbols.def"
53#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class) \
54 inline Class operator|(Class a, Class b) { \
55 return static_cast<Class>(llvm::to_underlying(a) | \
56 llvm::to_underlying(b)); \
58 inline Class operator&(Class a, Class b) { \
59 return static_cast<Class>(llvm::to_underlying(a) & \
60 llvm::to_underlying(b)); \
62 inline Class operator~(Class a) { \
63 return static_cast<Class>(~llvm::to_underlying(a)); \
65 inline Class &operator|=(Class &a, Class b) { \
69 inline Class &operator&=(Class &a, Class b) { \
523#define CV_REGISTERS_ALL
524#define CV_REGISTER(name, value) name = value,
525#include "CodeViewRegisters.def"
527#undef CV_REGISTERS_ALL
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
This file contains library features backported from future STL versions.
@ 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