14 #ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H 15 #define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H 18 #include <type_traits> 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>( \ 56 static_cast<std::underlying_type<Class>::type>(a) | \ 57 static_cast<std::underlying_type<Class>::type>(b)); \ 59 inline Class operator&(Class a, Class b) { \ 60 return static_cast<Class>( \ 61 static_cast<std::underlying_type<Class>::type>(a) & \ 62 static_cast<std::underlying_type<Class>::type>(b)); \ 64 inline Class operator~(Class a) { \ 65 return static_cast<Class>( \ 66 ~static_cast<std::underlying_type<Class>::type>(a)); \ 68 inline Class &operator|=(Class &a, Class b) { \ 72 inline Class &operator&=(Class &a, Class b) { \ 512 #define CV_REGISTER(name, value) name = value, 513 #include "CodeViewRegisters.def" 565 IsFunctionStart = 1 << 2,
PointerKind
Equivalent to CV_ptrtype_e.
SymbolRecordKind
Distinguishes individual records in the Symbols subsection of a .debug$S section. ...
This class represents lattice values for constants.
CompileSym3Flags
Corresponds to COMPILESYM3::Flags bitfield.
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
Data in the SUBSEC_FRAMEDATA subection.
support::ulittle32_t RvaStart
support::ulittle32_t Count
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
support::ulittle16_t PrologSize
uint32_t alignOf(CodeViewContainer Container)
support::ulittle32_t CodeSize
support::ulittle32_t MaxStackSize
ModifierOptions
Equivalent to CV_modifier_t.
LabelType
Equivalent to CV_LABEL_TYPE_e.
PublicSymFlags
Corresponds to the CV_PUBSYMFLAGS bitfield.
MethodKind
Part of member attribute flags. (CV_methodprop_e)
TypeRecordKind
Distinguishes individual records in .debug$T or .debug$P section or PDB type stream.
EncodedFramePtrReg
Two-bit value indicating which register is the designated frame pointer register. ...
support::ulittle32_t ParamsSize
support::ulittle32_t Flags
support::ulittle32_t ModuleNameOffset
support::ulittle32_t LocalSize
PointerOptions
Equivalent to misc lfPointerAttr bitfields.
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx.
The DMD compiler emits 'D' for the CV source language.
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn...
PointerMode
Equivalent to CV_ptrmode_e.
MethodOptions
Equivalent to CV_fldattr_t bitfield.
EncodedFramePtrReg encodeFramePtrReg(RegisterId Reg, CPUType CPU)
support::ulittle32_t Local
SymbolKind
Duplicate copy of the above enum, but using the official CV names.
PointerToMemberRepresentation
Equivalent to CV_pmtype_e.
ThunkOrdinal
These values correspond to the THUNK_ORDINAL enumeration.
MemberAccess
Source-level access specifier. (CV_access_e)
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
support::ulittle32_t FrameFunc
ProcSymFlags
Corresponds to the CV_PROCFLAGS bitfield.
LocalSymFlags
Corresponds to CV_LVARFLAGS bitfield.
RegisterId decodeFramePtrReg(EncodedFramePtrReg EncodedReg, CPUType CPU)
CompileSym2Flags
Corresponds to COMPILESYM2::Flags bitfield.
support::ulittle32_t Global
support::ulittle16_t SavedRegsSize