LLVM  8.0.1
Classes | Namespaces | Macros | Enumerations | Functions
CodeView.h File Reference
#include <cinttypes>
#include <type_traits>
#include "llvm/Support/Endian.h"
#include "CodeViewTypes.def"
#include "CodeViewSymbols.def"
#include "CodeViewRegisters.def"
Include dependency graph for CodeView.h:

Go to the source code of this file.

Classes

struct  llvm::codeview::FrameData
 Data in the SUBSEC_FRAMEDATA subection. More...
 
struct  llvm::codeview::CrossModuleExport
 
struct  llvm::codeview::CrossModuleImport
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::codeview
 

Macros

#define TYPE_RECORD(lf_ename, value, name)   name = value,
 
#define CV_TYPE(name, val)   name = val,
 
#define SYMBOL_RECORD(lf_ename, value, name)   name = value,
 
#define CV_SYMBOL(name, val)   name = val,
 
#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS(Class)
 
#define CV_REGISTER(name, value)   name = value,
 

Enumerations

enum  llvm::codeview::TypeRecordKind : uint16_t {
  llvm::codeview::TYPE_RECORD, llvm::codeview::CV_TYPE, llvm::codeview::TYPE_RECORD_ALIAS, llvm::codeview::MEMBER_RECORD,
  llvm::codeview::MEMBER_RECORD_ALIAS, llvm::codeview::MEMBER_RECORD_ALIAS
}
 Distinguishes individual records in .debug$T or .debug$P section or PDB type stream. More...
 
enum  llvm::codeview::TypeLeafKind : uint16_t {
  llvm::codeview::CV_TYPE, llvm::codeview::CV_TYPE, llvm::codeview::TYPE_RECORD, llvm::codeview::TYPE_RECORD_ALIAS,
  llvm::codeview::MEMBER_RECORD, llvm::codeview::MEMBER_RECORD_ALIAS, llvm::codeview::MEMBER_RECORD_ALIAS, llvm::codeview::MEMBER_RECORD_ALIAS,
  llvm::codeview::MEMBER_RECORD_ALIAS, llvm::codeview::MEMBER_RECORD_ALIAS, llvm::codeview::MEMBER_RECORD_ALIAS
}
 Duplicate copy of the above enum, but using the official CV names. More...
 
enum  llvm::codeview::SymbolRecordKind : uint16_t { llvm::codeview::SYMBOL_RECORD, llvm::codeview::CV_SYMBOL, llvm::codeview::SYMBOL_RECORD_ALIAS, llvm::codeview::CV_SYMBOL }
 Distinguishes individual records in the Symbols subsection of a .debug$S section. More...
 
enum  llvm::codeview::SymbolKind : uint16_t {
  llvm::codeview::CV_SYMBOL, llvm::codeview::CV_SYMBOL, llvm::codeview::CV_SYMBOL, llvm::codeview::CV_SYMBOL,
  llvm::codeview::CV_SYMBOL, llvm::codeview::CV_SYMBOL, llvm::codeview::SYMBOL_RECORD, llvm::codeview::SYMBOL_RECORD_ALIAS,
  llvm::codeview::CV_SYMBOL, llvm::codeview::CV_SYMBOL, llvm::codeview::CV_SYMBOL
}
 Duplicate copy of the above enum, but using the official CV names. More...
 
enum  llvm::codeview::CPUType : uint16_t {
  llvm::codeview::CPUType::Intel8080 = 0x0, llvm::codeview::CPUType::Intel8086 = 0x1, llvm::codeview::CPUType::Intel80286 = 0x2, llvm::codeview::CPUType::Intel80386 = 0x3,
  llvm::codeview::CPUType::Intel80486 = 0x4, llvm::codeview::CPUType::Pentium = 0x5, llvm::codeview::CPUType::PentiumPro = 0x6, llvm::codeview::CPUType::Pentium3 = 0x7,
  llvm::codeview::CPUType::MIPS = 0x10, llvm::codeview::CPUType::MIPS16 = 0x11, llvm::codeview::CPUType::MIPS32 = 0x12, llvm::codeview::CPUType::MIPS64 = 0x13,
  llvm::codeview::CPUType::MIPSI = 0x14, llvm::codeview::CPUType::MIPSII = 0x15, llvm::codeview::CPUType::MIPSIII = 0x16, llvm::codeview::CPUType::MIPSIV = 0x17,
  llvm::codeview::CPUType::MIPSV = 0x18, llvm::codeview::CPUType::M68000 = 0x20, llvm::codeview::CPUType::M68010 = 0x21, llvm::codeview::CPUType::M68020 = 0x22,
  llvm::codeview::CPUType::M68030 = 0x23, llvm::codeview::CPUType::M68040 = 0x24, llvm::codeview::CPUType::Alpha = 0x30, llvm::codeview::CPUType::Alpha21164 = 0x31,
  llvm::codeview::CPUType::Alpha21164A = 0x32, llvm::codeview::CPUType::Alpha21264 = 0x33, llvm::codeview::CPUType::Alpha21364 = 0x34, llvm::codeview::CPUType::PPC601 = 0x40,
  llvm::codeview::CPUType::PPC603 = 0x41, llvm::codeview::CPUType::PPC604 = 0x42, llvm::codeview::CPUType::PPC620 = 0x43, llvm::codeview::CPUType::PPCFP = 0x44,
  llvm::codeview::CPUType::PPCBE = 0x45, llvm::codeview::CPUType::SH3 = 0x50, llvm::codeview::CPUType::SH3E = 0x51, llvm::codeview::CPUType::SH3DSP = 0x52,
  llvm::codeview::CPUType::SH4 = 0x53, llvm::codeview::CPUType::SHMedia = 0x54, llvm::codeview::CPUType::ARM3 = 0x60, llvm::codeview::CPUType::ARM4 = 0x61,
  llvm::codeview::CPUType::ARM4T = 0x62, llvm::codeview::CPUType::ARM5 = 0x63, llvm::codeview::CPUType::ARM5T = 0x64, llvm::codeview::CPUType::ARM6 = 0x65,
  llvm::codeview::CPUType::ARM_XMAC = 0x66, llvm::codeview::CPUType::ARM_WMMX = 0x67, llvm::codeview::CPUType::ARM7 = 0x68, llvm::codeview::CPUType::ARM64 = 0x69,
  llvm::codeview::CPUType::Omni = 0x70, llvm::codeview::CPUType::Ia64 = 0x80, llvm::codeview::CPUType::Ia64_2 = 0x81, llvm::codeview::CPUType::CEE = 0x90,
  llvm::codeview::CPUType::AM33 = 0xa0, llvm::codeview::CPUType::M32R = 0xb0, llvm::codeview::CPUType::TriCore = 0xc0, llvm::codeview::CPUType::X64 = 0xd0,
  llvm::codeview::CPUType::EBC = 0xe0, llvm::codeview::CPUType::Thumb = 0xf0, llvm::codeview::CPUType::ARMNT = 0xf4, llvm::codeview::CPUType::D3D11_Shader = 0x100
}
 These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx. More...
 
enum  llvm::codeview::SourceLanguage : uint8_t {
  llvm::codeview::C = 0x00, llvm::codeview::Cpp = 0x01, llvm::codeview::Fortran = 0x02, llvm::codeview::Masm = 0x03,
  llvm::codeview::Pascal = 0x04, llvm::codeview::Basic = 0x05, llvm::codeview::Cobol = 0x06, llvm::codeview::Link = 0x07,
  llvm::codeview::Cvtres = 0x08, llvm::codeview::Cvtpgd = 0x09, llvm::codeview::CSharp = 0x0a, llvm::codeview::VB = 0x0b,
  llvm::codeview::ILAsm = 0x0c, llvm::codeview::Java = 0x0d, llvm::codeview::JScript = 0x0e, llvm::codeview::MSIL = 0x0f,
  llvm::codeview::HLSL = 0x10, llvm::codeview::D = 'D'
}
 These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx. More...
 
enum  llvm::codeview::CallingConvention : uint8_t {
  llvm::codeview::CallingConvention::NearC = 0x00, llvm::codeview::CallingConvention::FarC = 0x01, llvm::codeview::CallingConvention::NearPascal = 0x02, llvm::codeview::CallingConvention::FarPascal = 0x03,
  llvm::codeview::CallingConvention::NearFast = 0x04, llvm::codeview::CallingConvention::FarFast = 0x05, llvm::codeview::CallingConvention::NearStdCall = 0x07, llvm::codeview::CallingConvention::FarStdCall = 0x08,
  llvm::codeview::CallingConvention::NearSysCall = 0x09, llvm::codeview::CallingConvention::FarSysCall = 0x0a, llvm::codeview::CallingConvention::ThisCall = 0x0b, llvm::codeview::CallingConvention::MipsCall = 0x0c,
  llvm::codeview::CallingConvention::Generic = 0x0d, llvm::codeview::CallingConvention::AlphaCall = 0x0e, llvm::codeview::CallingConvention::PpcCall = 0x0f, llvm::codeview::CallingConvention::SHCall = 0x10,
  llvm::codeview::CallingConvention::ArmCall = 0x11, llvm::codeview::CallingConvention::AM33Call = 0x12, llvm::codeview::CallingConvention::TriCall = 0x13, llvm::codeview::CallingConvention::SH5Call = 0x14,
  llvm::codeview::CallingConvention::M32RCall = 0x15, llvm::codeview::CallingConvention::ClrCall = 0x16, llvm::codeview::CallingConvention::Inline, llvm::codeview::CallingConvention::NearVector = 0x18
}
 These values correspond to the CV_call_e enumeration, and are documented at the following locations: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx. More...
 
enum  llvm::codeview::ClassOptions : uint16_t {
  llvm::codeview::ClassOptions::None = 0x0000, llvm::codeview::ClassOptions::Packed = 0x0001, llvm::codeview::ClassOptions::HasConstructorOrDestructor = 0x0002, llvm::codeview::ClassOptions::HasOverloadedOperator = 0x0004,
  llvm::codeview::ClassOptions::Nested = 0x0008, llvm::codeview::ClassOptions::ContainsNestedClass = 0x0010, llvm::codeview::ClassOptions::HasOverloadedAssignmentOperator = 0x0020, llvm::codeview::ClassOptions::HasConversionOperator = 0x0040,
  llvm::codeview::ClassOptions::ForwardReference = 0x0080, llvm::codeview::ClassOptions::Scoped = 0x0100, llvm::codeview::ClassOptions::HasUniqueName = 0x0200, llvm::codeview::ClassOptions::Sealed = 0x0400,
  llvm::codeview::ClassOptions::Intrinsic = 0x2000
}
 
enum  llvm::codeview::FrameProcedureOptions : uint32_t {
  llvm::codeview::FrameProcedureOptions::None = 0x00000000, llvm::codeview::FrameProcedureOptions::HasAlloca = 0x00000001, llvm::codeview::FrameProcedureOptions::HasSetJmp = 0x00000002, llvm::codeview::FrameProcedureOptions::HasLongJmp = 0x00000004,
  llvm::codeview::FrameProcedureOptions::HasInlineAssembly = 0x00000008, llvm::codeview::FrameProcedureOptions::HasExceptionHandling = 0x00000010, llvm::codeview::FrameProcedureOptions::MarkedInline = 0x00000020, llvm::codeview::FrameProcedureOptions::HasStructuredExceptionHandling = 0x00000040,
  llvm::codeview::FrameProcedureOptions::Naked = 0x00000080, llvm::codeview::FrameProcedureOptions::SecurityChecks = 0x00000100, llvm::codeview::FrameProcedureOptions::AsynchronousExceptionHandling = 0x00000200, llvm::codeview::FrameProcedureOptions::NoStackOrderingForSecurityChecks = 0x00000400,
  llvm::codeview::FrameProcedureOptions::Inlined = 0x00000800, llvm::codeview::FrameProcedureOptions::StrictSecurityChecks = 0x00001000, llvm::codeview::FrameProcedureOptions::SafeBuffers = 0x00002000, llvm::codeview::FrameProcedureOptions::EncodedLocalBasePointerMask = 0x0000C000,
  llvm::codeview::FrameProcedureOptions::EncodedParamBasePointerMask = 0x00030000, llvm::codeview::FrameProcedureOptions::ProfileGuidedOptimization = 0x00040000, llvm::codeview::FrameProcedureOptions::ValidProfileCounts = 0x00080000, llvm::codeview::FrameProcedureOptions::OptimizedForSpeed = 0x00100000,
  llvm::codeview::FrameProcedureOptions::GuardCfg = 0x00200000, llvm::codeview::FrameProcedureOptions::GuardCfw = 0x00400000
}
 
enum  llvm::codeview::FunctionOptions : uint8_t { llvm::codeview::FunctionOptions::None = 0x00, llvm::codeview::FunctionOptions::CxxReturnUdt = 0x01, llvm::codeview::FunctionOptions::Constructor = 0x02, llvm::codeview::FunctionOptions::ConstructorWithVirtualBases = 0x04 }
 
enum  llvm::codeview::HfaKind : uint8_t { llvm::codeview::HfaKind::None = 0x00, llvm::codeview::HfaKind::Float = 0x01, llvm::codeview::HfaKind::Double = 0x02, llvm::codeview::HfaKind::Other = 0x03 }
 
enum  llvm::codeview::MemberAccess : uint8_t { llvm::codeview::MemberAccess::None = 0, llvm::codeview::MemberAccess::Private = 1, llvm::codeview::MemberAccess::Protected = 2, llvm::codeview::MemberAccess::Public = 3 }
 Source-level access specifier. (CV_access_e) More...
 
enum  llvm::codeview::MethodKind : uint8_t {
  llvm::codeview::MethodKind::Vanilla = 0x00, llvm::codeview::MethodKind::Virtual = 0x01, llvm::codeview::MethodKind::Static = 0x02, llvm::codeview::MethodKind::Friend = 0x03,
  llvm::codeview::MethodKind::IntroducingVirtual = 0x04, llvm::codeview::MethodKind::PureVirtual = 0x05, llvm::codeview::MethodKind::PureIntroducingVirtual = 0x06
}
 Part of member attribute flags. (CV_methodprop_e) More...
 
enum  llvm::codeview::MethodOptions : uint16_t {
  llvm::codeview::MethodOptions::None = 0x0000, llvm::codeview::MethodOptions::AccessMask = 0x0003, llvm::codeview::MethodOptions::MethodKindMask = 0x001c, llvm::codeview::MethodOptions::Pseudo = 0x0020,
  llvm::codeview::MethodOptions::NoInherit = 0x0040, llvm::codeview::MethodOptions::NoConstruct = 0x0080, llvm::codeview::MethodOptions::CompilerGenerated = 0x0100, llvm::codeview::MethodOptions::Sealed = 0x0200
}
 Equivalent to CV_fldattr_t bitfield. More...
 
enum  llvm::codeview::LabelType : uint16_t { llvm::codeview::LabelType::Near = 0x0, llvm::codeview::LabelType::Far = 0x4 }
 Equivalent to CV_LABEL_TYPE_e. More...
 
enum  llvm::codeview::ModifierOptions : uint16_t { llvm::codeview::ModifierOptions::None = 0x0000, llvm::codeview::ModifierOptions::Const = 0x0001, llvm::codeview::ModifierOptions::Volatile = 0x0002, llvm::codeview::ModifierOptions::Unaligned = 0x0004 }
 Equivalent to CV_modifier_t. More...
 
enum  llvm::codeview::DebugSubsectionKind : uint32_t {
  llvm::codeview::DebugSubsectionKind::None = 0, llvm::codeview::DebugSubsectionKind::Symbols = 0xf1, llvm::codeview::DebugSubsectionKind::Lines = 0xf2, llvm::codeview::DebugSubsectionKind::StringTable = 0xf3,
  llvm::codeview::DebugSubsectionKind::FileChecksums = 0xf4, llvm::codeview::DebugSubsectionKind::FrameData = 0xf5, llvm::codeview::DebugSubsectionKind::InlineeLines = 0xf6, llvm::codeview::DebugSubsectionKind::CrossScopeImports = 0xf7,
  llvm::codeview::DebugSubsectionKind::CrossScopeExports = 0xf8, llvm::codeview::DebugSubsectionKind::ILLines = 0xf9, llvm::codeview::DebugSubsectionKind::FuncMDTokenMap = 0xfa, llvm::codeview::DebugSubsectionKind::TypeMDTokenMap = 0xfb,
  llvm::codeview::DebugSubsectionKind::MergedAssemblyInput = 0xfc, llvm::codeview::DebugSubsectionKind::CoffSymbolRVA = 0xfd
}
 
enum  llvm::codeview::PointerKind : uint8_t {
  llvm::codeview::PointerKind::Near16 = 0x00, llvm::codeview::PointerKind::Far16 = 0x01, llvm::codeview::PointerKind::Huge16 = 0x02, llvm::codeview::PointerKind::BasedOnSegment = 0x03,
  llvm::codeview::PointerKind::BasedOnValue = 0x04, llvm::codeview::PointerKind::BasedOnSegmentValue = 0x05, llvm::codeview::PointerKind::BasedOnAddress = 0x06, llvm::codeview::PointerKind::BasedOnSegmentAddress = 0x07,
  llvm::codeview::PointerKind::BasedOnType = 0x08, llvm::codeview::PointerKind::BasedOnSelf = 0x09, llvm::codeview::PointerKind::Near32 = 0x0a, llvm::codeview::PointerKind::Far32 = 0x0b,
  llvm::codeview::PointerKind::Near64 = 0x0c
}
 Equivalent to CV_ptrtype_e. More...
 
enum  llvm::codeview::PointerMode : uint8_t {
  llvm::codeview::PointerMode::Pointer = 0x00, llvm::codeview::PointerMode::LValueReference = 0x01, llvm::codeview::PointerMode::PointerToDataMember = 0x02, llvm::codeview::PointerMode::PointerToMemberFunction = 0x03,
  llvm::codeview::PointerMode::RValueReference = 0x04
}
 Equivalent to CV_ptrmode_e. More...
 
enum  llvm::codeview::PointerOptions : uint32_t {
  llvm::codeview::PointerOptions::None = 0x00000000, llvm::codeview::PointerOptions::Flat32 = 0x00000100, llvm::codeview::PointerOptions::Volatile = 0x00000200, llvm::codeview::PointerOptions::Const = 0x00000400,
  llvm::codeview::PointerOptions::Unaligned = 0x00000800, llvm::codeview::PointerOptions::Restrict = 0x00001000, llvm::codeview::PointerOptions::WinRTSmartPointer = 0x00080000, llvm::codeview::PointerOptions::LValueRefThisPointer = 0x00100000,
  llvm::codeview::PointerOptions::RValueRefThisPointer = 0x00200000
}
 Equivalent to misc lfPointerAttr bitfields. More...
 
enum  llvm::codeview::PointerToMemberRepresentation : uint16_t {
  llvm::codeview::PointerToMemberRepresentation::Unknown = 0x00, llvm::codeview::PointerToMemberRepresentation::SingleInheritanceData = 0x01, llvm::codeview::PointerToMemberRepresentation::MultipleInheritanceData = 0x02, llvm::codeview::PointerToMemberRepresentation::VirtualInheritanceData = 0x03,
  llvm::codeview::PointerToMemberRepresentation::GeneralData = 0x04, llvm::codeview::PointerToMemberRepresentation::SingleInheritanceFunction = 0x05, llvm::codeview::PointerToMemberRepresentation::MultipleInheritanceFunction = 0x06, llvm::codeview::PointerToMemberRepresentation::VirtualInheritanceFunction = 0x07,
  llvm::codeview::PointerToMemberRepresentation::GeneralFunction = 0x08
}
 Equivalent to CV_pmtype_e. More...
 
enum  llvm::codeview::VFTableSlotKind : uint8_t {
  llvm::codeview::VFTableSlotKind::Near16 = 0x00, llvm::codeview::VFTableSlotKind::Far16 = 0x01, llvm::codeview::VFTableSlotKind::This = 0x02, llvm::codeview::VFTableSlotKind::Outer = 0x03,
  llvm::codeview::VFTableSlotKind::Meta = 0x04, llvm::codeview::VFTableSlotKind::Near = 0x05, llvm::codeview::VFTableSlotKind::Far = 0x06
}
 
enum  llvm::codeview::WindowsRTClassKind : uint8_t { llvm::codeview::WindowsRTClassKind::None = 0x00, llvm::codeview::WindowsRTClassKind::RefClass = 0x01, llvm::codeview::WindowsRTClassKind::ValueClass = 0x02, llvm::codeview::WindowsRTClassKind::Interface = 0x03 }
 
enum  llvm::codeview::LocalSymFlags : uint16_t {
  llvm::codeview::LocalSymFlags::None = 0, llvm::codeview::LocalSymFlags::IsParameter = 1 << 0, llvm::codeview::LocalSymFlags::IsAddressTaken = 1 << 1, llvm::codeview::LocalSymFlags::IsCompilerGenerated = 1 << 2,
  llvm::codeview::LocalSymFlags::IsAggregate = 1 << 3, llvm::codeview::LocalSymFlags::IsAggregated = 1 << 4, llvm::codeview::LocalSymFlags::IsAliased = 1 << 5, llvm::codeview::LocalSymFlags::IsAlias = 1 << 6,
  llvm::codeview::LocalSymFlags::IsReturnValue = 1 << 7, llvm::codeview::LocalSymFlags::IsOptimizedOut = 1 << 8, llvm::codeview::LocalSymFlags::IsEnregisteredGlobal = 1 << 9, llvm::codeview::LocalSymFlags::IsEnregisteredStatic = 1 << 10
}
 Corresponds to CV_LVARFLAGS bitfield. More...
 
enum  llvm::codeview::PublicSymFlags : uint32_t {
  llvm::codeview::PublicSymFlags::None = 0, llvm::codeview::PublicSymFlags::Code = 1 << 0, llvm::codeview::PublicSymFlags::Function = 1 << 1, llvm::codeview::PublicSymFlags::Managed = 1 << 2,
  llvm::codeview::PublicSymFlags::MSIL = 1 << 3
}
 Corresponds to the CV_PUBSYMFLAGS bitfield. More...
 
enum  llvm::codeview::ProcSymFlags : uint8_t {
  llvm::codeview::ProcSymFlags::None = 0, llvm::codeview::ProcSymFlags::HasFP = 1 << 0, llvm::codeview::ProcSymFlags::HasIRET = 1 << 1, llvm::codeview::ProcSymFlags::HasFRET = 1 << 2,
  llvm::codeview::ProcSymFlags::IsNoReturn = 1 << 3, llvm::codeview::ProcSymFlags::IsUnreachable = 1 << 4, llvm::codeview::ProcSymFlags::HasCustomCallingConv = 1 << 5, llvm::codeview::ProcSymFlags::IsNoInline = 1 << 6,
  llvm::codeview::ProcSymFlags::HasOptimizedDebugInfo = 1 << 7
}
 Corresponds to the CV_PROCFLAGS bitfield. More...
 
enum  llvm::codeview::CompileSym2Flags : uint32_t {
  llvm::codeview::CompileSym2Flags::None = 0, llvm::codeview::CompileSym2Flags::SourceLanguageMask = 0xFF, llvm::codeview::CompileSym2Flags::EC = 1 << 8, llvm::codeview::CompileSym2Flags::NoDbgInfo = 1 << 9,
  llvm::codeview::CompileSym2Flags::LTCG = 1 << 10, llvm::codeview::CompileSym2Flags::NoDataAlign = 1 << 11, llvm::codeview::CompileSym2Flags::ManagedPresent = 1 << 12, llvm::codeview::CompileSym2Flags::SecurityChecks = 1 << 13,
  llvm::codeview::CompileSym2Flags::HotPatch = 1 << 14, llvm::codeview::CompileSym2Flags::CVTCIL = 1 << 15, llvm::codeview::CompileSym2Flags::MSILModule = 1 << 16
}
 Corresponds to COMPILESYM2::Flags bitfield. More...
 
enum  llvm::codeview::CompileSym3Flags : uint32_t {
  llvm::codeview::CompileSym3Flags::None = 0, llvm::codeview::CompileSym3Flags::SourceLanguageMask = 0xFF, llvm::codeview::CompileSym3Flags::EC = 1 << 8, llvm::codeview::CompileSym3Flags::NoDbgInfo = 1 << 9,
  llvm::codeview::CompileSym3Flags::LTCG = 1 << 10, llvm::codeview::CompileSym3Flags::NoDataAlign = 1 << 11, llvm::codeview::CompileSym3Flags::ManagedPresent = 1 << 12, llvm::codeview::CompileSym3Flags::SecurityChecks = 1 << 13,
  llvm::codeview::CompileSym3Flags::HotPatch = 1 << 14, llvm::codeview::CompileSym3Flags::CVTCIL = 1 << 15, llvm::codeview::CompileSym3Flags::MSILModule = 1 << 16, llvm::codeview::CompileSym3Flags::Sdl = 1 << 17,
  llvm::codeview::CompileSym3Flags::PGO = 1 << 18, llvm::codeview::CompileSym3Flags::Exp = 1 << 19
}
 Corresponds to COMPILESYM3::Flags bitfield. More...
 
enum  llvm::codeview::ExportFlags : uint16_t {
  llvm::codeview::ExportFlags::None = 0, llvm::codeview::ExportFlags::IsConstant = 1 << 0, llvm::codeview::ExportFlags::IsData = 1 << 1, llvm::codeview::ExportFlags::IsPrivate = 1 << 2,
  llvm::codeview::ExportFlags::HasNoName = 1 << 3, llvm::codeview::ExportFlags::HasExplicitOrdinal = 1 << 4, llvm::codeview::ExportFlags::IsForwarder = 1 << 5
}
 
enum  llvm::codeview::BinaryAnnotationsOpCode : uint32_t {
  llvm::codeview::BinaryAnnotationsOpCode::Invalid, llvm::codeview::BinaryAnnotationsOpCode::CodeOffset, llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeOffsetBase, llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeOffset,
  llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeLength, llvm::codeview::BinaryAnnotationsOpCode::ChangeFile, llvm::codeview::BinaryAnnotationsOpCode::ChangeLineOffset, llvm::codeview::BinaryAnnotationsOpCode::ChangeLineEndDelta,
  llvm::codeview::BinaryAnnotationsOpCode::ChangeRangeKind, llvm::codeview::BinaryAnnotationsOpCode::ChangeColumnStart, llvm::codeview::BinaryAnnotationsOpCode::ChangeColumnEndDelta, llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeOffsetAndLineOffset,
  llvm::codeview::BinaryAnnotationsOpCode::ChangeCodeLengthAndCodeOffset, llvm::codeview::BinaryAnnotationsOpCode::ChangeColumnEnd
}
 
enum  llvm::codeview::FrameCookieKind : uint8_t { llvm::codeview::FrameCookieKind::Copy, llvm::codeview::FrameCookieKind::XorStackPointer, llvm::codeview::FrameCookieKind::XorFramePointer, llvm::codeview::FrameCookieKind::XorR13 }
 
enum  llvm::codeview::RegisterId : uint16_t { llvm::codeview::RegisterId::CV_REGISTER }
 
enum  llvm::codeview::EncodedFramePtrReg : uint8_t { llvm::codeview::EncodedFramePtrReg::None = 0, llvm::codeview::EncodedFramePtrReg::StackPtr = 1, llvm::codeview::EncodedFramePtrReg::FramePtr = 2, llvm::codeview::EncodedFramePtrReg::BasePtr = 3 }
 Two-bit value indicating which register is the designated frame pointer register. More...
 
enum  llvm::codeview::ThunkOrdinal : uint8_t {
  llvm::codeview::ThunkOrdinal::Standard, llvm::codeview::ThunkOrdinal::ThisAdjustor, llvm::codeview::ThunkOrdinal::Vcall, llvm::codeview::ThunkOrdinal::Pcode,
  llvm::codeview::ThunkOrdinal::UnknownLoad, llvm::codeview::ThunkOrdinal::TrampIncremental, llvm::codeview::ThunkOrdinal::BranchIsland
}
 These values correspond to the THUNK_ORDINAL enumeration. More...
 
enum  llvm::codeview::TrampolineType : uint16_t { llvm::codeview::TrampolineType::TrampIncremental, llvm::codeview::TrampolineType::BranchIsland }
 
enum  llvm::codeview::FileChecksumKind : uint8_t { llvm::codeview::FileChecksumKind::None, llvm::codeview::FileChecksumKind::MD5, llvm::codeview::FileChecksumKind::SHA1, llvm::codeview::FileChecksumKind::SHA256 }
 
enum  llvm::codeview::LineFlags : uint16_t { llvm::codeview::LF_None = 0, llvm::codeview::LF_HaveColumns = 1 }
 
enum  llvm::codeview::CodeViewContainer { llvm::codeview::CodeViewContainer::ObjectFile, llvm::codeview::CodeViewContainer::Pdb }
 

Functions

RegisterId llvm::codeview::decodeFramePtrReg (EncodedFramePtrReg EncodedReg, CPUType CPU)
 
EncodedFramePtrReg llvm::codeview::encodeFramePtrReg (RegisterId Reg, CPUType CPU)
 
uint32_t llvm::codeview::alignOf (CodeViewContainer Container)
 

Macro Definition Documentation

◆ CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS

#define CV_DEFINE_ENUM_CLASS_FLAGS_OPERATORS (   Class)
Value:
inline Class operator|(Class a, Class b) { \
return static_cast<Class>( \
static_cast<std::underlying_type<Class>::type>(a) | \
static_cast<std::underlying_type<Class>::type>(b)); \
} \
inline Class operator&(Class a, Class b) { \
return static_cast<Class>( \
static_cast<std::underlying_type<Class>::type>(a) & \
static_cast<std::underlying_type<Class>::type>(b)); \
} \
inline Class operator~(Class a) { \
return static_cast<Class>( \
~static_cast<std::underlying_type<Class>::type>(a)); \
} \
inline Class &operator|=(Class &a, Class b) { \
a = a | b; \
return a; \
} \
inline Class &operator&=(Class &a, Class b) { \
a = a & b; \
return a; \
}
APInt operator &(APInt a, const APInt &b)
Definition: APInt.h:1979
APInt operator~(APInt v)
Unary bitwise complement operator.
Definition: APInt.h:1974
E & operator|=(E &LHS, E RHS)
Definition: BitmaskEnum.h:127
E & operator &=(E &LHS, E RHS)
Definition: BitmaskEnum.h:134
APInt operator|(APInt a, const APInt &b)
Definition: APInt.h:1999

Definition at line 53 of file CodeView.h.

◆ CV_REGISTER

#define CV_REGISTER (   name,
  value 
)    name = value,

Definition at line 512 of file CodeView.h.

◆ CV_SYMBOL

#define CV_SYMBOL (   name,
  val 
)    name = val,

Definition at line 65 of file CodeView.h.

◆ CV_TYPE

#define CV_TYPE (   name,
  val 
)    name = val,

Definition at line 53 of file CodeView.h.

◆ SYMBOL_RECORD

#define SYMBOL_RECORD (   lf_ename,
  value,
  name 
)    name = value,

Definition at line 69 of file CodeView.h.

◆ TYPE_RECORD

#define TYPE_RECORD (   lf_ename,
  value,
  name 
)    name = value,

Definition at line 58 of file CodeView.h.