10 #ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
11 #define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H
14 #include <type_traits>
22 #define TYPE_RECORD(lf_ename, value, name) name = value,
23 #include "TypeRecords.def"
29 #define CV_TYPE(name, val) name = val,
30 #include "TypeRecords.def"
36 #define SYMBOL_RECORD(lf_ename, value, name) name = value,
37 #include "CVSymbolTypes.def"
43 #define CV_SYMBOL(name, val) name = val,
44 #include "CVSymbolTypes.def"
47 #define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class) \
48 inline Class operator|(Class a, Class b) { \
49 return static_cast<Class>( \
50 static_cast<std::underlying_type<Class>::type>(a) | \
51 static_cast<std::underlying_type<Class>::type>(b)); \
53 inline Class operator&(Class a, Class b) { \
54 return static_cast<Class>( \
55 static_cast<std::underlying_type<Class>::type>(a) & \
56 static_cast<std::underlying_type<Class>::type>(b)); \
58 inline Class operator~(Class a) { \
59 return static_cast<Class>( \
60 ~static_cast<std::underlying_type<Class>::type>(a)); \
62 inline Class &operator|=(Class &a, Class b) { \
66 inline Class &operator&=(Class &a, Class b) { \
PointerKind
Equivalent to CV_ptrtype_e.
SymbolRecordKind
Distinguishes individual records in the Symbols subsection of a .debug$S section. ...
CompileSym3Flags
Corresponds to COMPILESYM3::Flags bitfield.
TypeLeafKind
Duplicate copy of the above enum, but using the official CV names.
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
ModifierOptions
Equivalent to CV_modifier_t.
MethodKind
Part of member attribute flags. (CV_methodprop_e)
TypeRecordKind
Distinguishes individual records in .debug$T section or PDB type stream.
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.
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.
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: ...
ProcSymFlags
Corresponds to the CV_PROCFLAGS bitfield.
LocalSymFlags
Corresponds to CV_LVARFLAGS bitfield.
CompileSym2Flags
Corresponds to COMPILESYM2::Flags bitfield.