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) { \
530#define CV_REGISTERS_ALL
531#define CV_REGISTER(name, value) name = value,
532#include "CodeViewRegisters.def"
534#undef CV_REGISTERS_ALL
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
This file contains library features backported from future STL versions.
A table of densely packed, null-terminated strings indexed by offset.
@ 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 compiler emits 'D' for the CV source language.
@ OldSwift
The Swift compiler used to emit 'S' for the CV source language, but current versions emit the enumera...
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