LLVM 19.0.0git
Classes | Namespaces | Macros | Enumerations | Functions
CodeView.h File Reference
#include <cinttypes>
#include <type_traits>
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/Support/Endian.h"
#include "CodeViewTypes.def"
#include "CodeViewSymbols.def"
#include "CodeViewRegisters.def"

Go to the source code of this file.

Classes

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

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  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_REGISTERS_ALL
 
#define CV_REGISTER(name, value)   name = value,
 

Enumerations

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

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>(llvm::to_underlying(a) | \
llvm::to_underlying(b)); \
} \
inline Class operator&(Class a, Class b) { \
return static_cast<Class>(llvm::to_underlying(a) & \
llvm::to_underlying(b)); \
} \
inline Class operator~(Class a) { \
return static_cast<Class>(~llvm::to_underlying(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; \
}
Qualifiers operator|=(Qualifiers &Q1, Qualifiers Q2)
E & operator&=(E &LHS, E RHS)
Definition: BitmaskEnum.h:175
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
APInt operator~(APInt v)
Unary bitwise complement operator.
Definition: APInt.h:2048
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.

Definition at line 53 of file CodeView.h.

◆ CV_REGISTER

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

Definition at line 531 of file CodeView.h.

◆ CV_REGISTERS_ALL

#define CV_REGISTERS_ALL

Definition at line 530 of file CodeView.h.

◆ CV_SYMBOL

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

Definition at line 49 of file CodeView.h.

◆ CV_TYPE

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

Definition at line 35 of file CodeView.h.

◆ SYMBOL_RECORD

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

Definition at line 42 of file CodeView.h.

◆ TYPE_RECORD

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

Definition at line 28 of file CodeView.h.