13#ifndef LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H 
   14#define LLVM_DEBUGINFO_CODEVIEW_CODEVIEW_H 
   29#define TYPE_RECORD(lf_ename, value, name) name = value, 
   30#include "CodeViewTypes.def" 
 
   36#define CV_TYPE(name, val) name = val, 
   37#include "CodeViewTypes.def" 
 
   43#define SYMBOL_RECORD(lf_ename, value, name) name = value, 
   44#include "CodeViewSymbols.def" 
 
   50#define CV_SYMBOL(name, val) name = val, 
   51#include "CodeViewSymbols.def" 
 
   54#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)                            \ 
   55  inline Class operator|(Class a, Class b) {                                   \ 
   56    return static_cast<Class>(llvm::to_underlying(a) |                         \ 
 
   57                              llvm::to_underlying(b));                         \ 
   59  inline Class operator&(Class a, Class b) {                                   \ 
   60    return static_cast<Class>(llvm::to_underlying(a) &                         \ 
   61                              llvm::to_underlying(b));                         \ 
   63  inline Class operator~(Class a) {                                            \ 
   64    return static_cast<Class>(~llvm::to_underlying(a));                        \ 
 
   66  inline Class &operator|=(Class &a, Class b) {                                \ 
 
   70  inline Class &operator&=(Class &a, Class b) {                                \ 
 
  148#define CV_LANGUAGE(NAME, ID) NAME = ID, 
  149#include "CodeViewLanguages.def" 
 
  503#define CV_REGISTERS_ALL 
  504#define CV_REGISTER(name, value) name = value, 
  505#include "CodeViewRegisters.def" 
  507#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.
LLVM_ABI 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.
LLVM_ABI EncodedFramePtrReg encodeFramePtrReg(RegisterId Reg, CPUType CPU)
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration in the Microsoft Debug Interface Access SDK,...
detail::packed_endian_specific_integral< uint32_t, llvm::endianness::little, unaligned > ulittle32_t
detail::packed_endian_specific_integral< uint16_t, llvm::endianness::little, unaligned > ulittle16_t
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