LLVM  8.0.1
Namespaces | Classes | Typedefs | Enumerations | Functions
llvm::codeview Namespace Reference

Namespaces

 detail
 

Classes

class  AppendingTypeTableBuilder
 
class  ArgListRecord
 
class  ArrayRecord
 
class  BaseClassRecord
 
struct  BinaryAnnotationIterator
 
class  BitFieldRecord
 
class  BlockSym
 
class  BPRelativeSym
 
class  BuildInfoRecord
 
class  BuildInfoSym
 
class  CallerSym
 
class  CallSiteInfoSym
 
class  ClassRecord
 
class  CodeViewError
 Base class for errors originating when parsing raw PDB files. More...
 
class  CodeViewRecordIO
 
class  CoffGroupSym
 
class  ColumnInfo
 
struct  ColumnNumberEntry
 
class  Compile2Sym
 
class  Compile3Sym
 
class  ConstantSym
 
class  ContinuationRecordBuilder
 
struct  CrossModuleExport
 
struct  CrossModuleImport
 
struct  CrossModuleImportItem
 
struct  CVMemberRecord
 
class  CVRecord
 
class  CVSymbolDumper
 Dumper for CodeView symbol streams found in COFF object files and PDB files. More...
 
class  CVSymbolVisitor
 
class  DataMemberRecord
 
class  DataSym
 
class  DebugChecksumsSubsection
 
class  DebugChecksumsSubsectionRef
 
class  DebugCrossModuleExportsSubsection
 
class  DebugCrossModuleExportsSubsectionRef
 
class  DebugCrossModuleImportsSubsection
 
class  DebugCrossModuleImportsSubsectionRef
 
class  DebugFrameDataSubsection
 
class  DebugFrameDataSubsectionRef
 
union  DebugInfo
 
class  DebugInlineeLinesSubsection
 
class  DebugInlineeLinesSubsectionRef
 
class  DebugLinesSubsection
 
class  DebugLinesSubsectionRef
 
class  DebugStringTableSubsection
 Represents a read-write view of a CodeView string table. More...
 
class  DebugStringTableSubsectionRef
 Represents a read-only view of a CodeView string table. More...
 
class  DebugSubsection
 
struct  DebugSubsectionHeader
 
class  DebugSubsectionRecord
 
class  DebugSubsectionRecordBuilder
 
class  DebugSubsectionRef
 
class  DebugSubsectionVisitor
 
class  DebugSymbolRVASubsection
 
class  DebugSymbolRVASubsectionRef
 
class  DebugSymbolsSubsection
 
class  DebugSymbolsSubsectionRef
 
class  DebugUnknownSubsectionRef
 
class  DefRangeFramePointerRelFullScopeSym
 
class  DefRangeFramePointerRelSym
 
class  DefRangeRegisterRelSym
 
class  DefRangeRegisterSym
 
class  DefRangeSubfieldRegisterSym
 
class  DefRangeSubfieldSym
 
class  DefRangeSym
 
class  EndPrecompRecord
 
class  EnumeratorRecord
 
class  EnumRecord
 
class  EnvBlockSym
 
class  ExportSym
 
class  FieldListDeserializer
 
class  FieldListRecord
 
struct  FileChecksumEntry
 
class  FileStaticSym
 
class  FrameCookieSym
 
struct  FrameData
 Data in the SUBSEC_FRAMEDATA subection. More...
 
class  FrameProcSym
 
class  FuncIdRecord
 
class  FunctionId
 
struct  GloballyHashedType
 A globally hashed type represents a hash value that is sufficient to uniquely identify a record across multiple type streams or type sequences. More...
 
class  GlobalTypeTableBuilder
 
struct  GUID
 This represents the 'GUID' type from windows.h. More...
 
class  HeapAllocationSiteSym
 
struct  InlineeSourceLine
 
struct  InlineeSourceLineHeader
 
class  InlineSiteSym
 
class  LabelRecord
 
class  LabelSym
 
class  LazyRandomTypeCollection
 Provides amortized O(1) random access to a CodeView type stream. More...
 
class  Line
 
struct  LineBlockFragmentHeader
 
struct  LineColumnEntry
 
class  LineColumnExtractor
 
struct  LineFragmentHeader
 
class  LineInfo
 
struct  LineNumberEntry
 
class  ListContinuationRecord
 LF_INDEX - Used to chain two large LF_FIELDLIST or LF_METHODLIST records together. More...
 
struct  LocallyHashedType
 A locally hashed type represents a straightforward hash code of a serialized record. More...
 
class  LocalSym
 
struct  LocalVariableAddrGap
 
struct  LocalVariableAddrRange
 
struct  MemberAttributes
 Equvalent to CV_fldattr_t in cvinfo.h. More...
 
class  MemberFuncIdRecord
 
class  MemberFunctionRecord
 
class  MemberPointerInfo
 
class  MergingTypeTableBuilder
 
class  MethodOverloadListRecord
 
class  ModifierRecord
 
class  NestedTypeRecord
 
class  ObjNameSym
 
class  OneMethodRecord
 
class  OverloadedMethodRecord
 For method overload sets. LF_METHOD. More...
 
struct  PDB20DebugInfo
 
struct  PDB70DebugInfo
 
class  PointerRecord
 
class  PrecompRecord
 
class  ProcedureRecord
 
class  ProcRefSym
 
class  ProcSym
 
class  PublicSym32
 
struct  RecordPrefix
 
class  RegisterSym
 
class  RegRelativeSym
 
struct  RemappedRecord
 
class  ScopeEndSym
 
class  SectionSym
 
struct  serialize_array_impl
 
struct  serialize_arrayref_tail_impl
 
struct  serialize_conditional_impl
 
struct  serialize_null_term_string_array_impl
 
struct  serialize_numeric_impl
 
struct  serialize_vector_tail_impl
 
class  SimpleTypeSerializer
 
class  StaticDataMemberRecord
 
class  StringIdRecord
 
class  StringListRecord
 
class  StringsAndChecksums
 
class  StringsAndChecksumsRef
 
class  SymbolDeserializer
 
class  SymbolDumpDelegate
 
class  SymbolRecord
 
class  SymbolRecordMapping
 
class  SymbolSerializer
 
class  SymbolVisitorCallbackPipeline
 
class  SymbolVisitorCallbacks
 
class  SymbolVisitorDelegate
 
class  TagRecord
 
class  ThreadLocalDataSym
 
class  Thunk32Sym
 
struct  TiReference
 
class  TrampolineSym
 
class  TypeCollection
 
class  TypeDeserializer
 
class  TypeDumpVisitor
 Dumper for CodeView type streams found in COFF object files and PDB files. More...
 
class  TypeIndex
 A 32-bit type reference. More...
 
struct  TypeIndexOffset
 
class  TypeRecord
 
class  TypeRecordMapping
 
class  TypeServer2Record
 
class  TypeSymbolEmitter
 
class  TypeTableCollection
 
class  TypeVisitorCallbackPipeline
 
class  TypeVisitorCallbacks
 
class  UdtModSourceLineRecord
 
class  UdtSourceLineRecord
 
class  UDTSym
 
struct  UnionRecord
 
class  UsingNamespaceSym
 
class  VFPtrRecord
 
class  VFTableRecord
 
class  VFTableShapeRecord
 
class  VirtualBaseClassRecord
 

Typedefs

using DebugSubsectionArray = VarStreamArray< DebugSubsectionRecord >
 
using CVSymbol = CVRecord< SymbolKind >
 
using CVSymbolArray = VarStreamArray< CVSymbol >
 
using CVType = CVRecord< TypeLeafKind >
 
using RemappedType = RemappedRecord< TypeLeafKind >
 
using CVTypeArray = VarStreamArray< CVType >
 
using CVTypeRange = iterator_range< CVTypeArray::Iterator >
 

Enumerations

enum  TypeRecordKind : uint16_t {
  TYPE_RECORD, CV_TYPE, TYPE_RECORD_ALIAS, MEMBER_RECORD,
  MEMBER_RECORD_ALIAS, MEMBER_RECORD_ALIAS
}
 Distinguishes individual records in .debug$T or .debug$P section or PDB type stream. More...
 
enum  TypeLeafKind : uint16_t {
  CV_TYPE, CV_TYPE, TYPE_RECORD, TYPE_RECORD_ALIAS,
  MEMBER_RECORD, MEMBER_RECORD_ALIAS, MEMBER_RECORD_ALIAS, MEMBER_RECORD_ALIAS,
  MEMBER_RECORD_ALIAS, MEMBER_RECORD_ALIAS, MEMBER_RECORD_ALIAS
}
 Duplicate copy of the above enum, but using the official CV names. More...
 
enum  SymbolRecordKind : uint16_t { SYMBOL_RECORD, CV_SYMBOL, SYMBOL_RECORD_ALIAS, CV_SYMBOL }
 Distinguishes individual records in the Symbols subsection of a .debug$S section. More...
 
enum  SymbolKind : uint16_t {
  CV_SYMBOL, CV_SYMBOL, CV_SYMBOL, CV_SYMBOL,
  CV_SYMBOL, CV_SYMBOL, SYMBOL_RECORD, SYMBOL_RECORD_ALIAS,
  CV_SYMBOL, CV_SYMBOL, CV_SYMBOL
}
 Duplicate copy of the above enum, but using the official CV names. More...
 
enum  CPUType : uint16_t {
  CPUType::Intel8080 = 0x0, CPUType::Intel8086 = 0x1, CPUType::Intel80286 = 0x2, CPUType::Intel80386 = 0x3,
  CPUType::Intel80486 = 0x4, CPUType::Pentium = 0x5, CPUType::PentiumPro = 0x6, CPUType::Pentium3 = 0x7,
  CPUType::MIPS = 0x10, CPUType::MIPS16 = 0x11, CPUType::MIPS32 = 0x12, CPUType::MIPS64 = 0x13,
  CPUType::MIPSI = 0x14, CPUType::MIPSII = 0x15, CPUType::MIPSIII = 0x16, CPUType::MIPSIV = 0x17,
  CPUType::MIPSV = 0x18, CPUType::M68000 = 0x20, CPUType::M68010 = 0x21, CPUType::M68020 = 0x22,
  CPUType::M68030 = 0x23, CPUType::M68040 = 0x24, CPUType::Alpha = 0x30, CPUType::Alpha21164 = 0x31,
  CPUType::Alpha21164A = 0x32, CPUType::Alpha21264 = 0x33, CPUType::Alpha21364 = 0x34, CPUType::PPC601 = 0x40,
  CPUType::PPC603 = 0x41, CPUType::PPC604 = 0x42, CPUType::PPC620 = 0x43, CPUType::PPCFP = 0x44,
  CPUType::PPCBE = 0x45, CPUType::SH3 = 0x50, CPUType::SH3E = 0x51, CPUType::SH3DSP = 0x52,
  CPUType::SH4 = 0x53, CPUType::SHMedia = 0x54, CPUType::ARM3 = 0x60, CPUType::ARM4 = 0x61,
  CPUType::ARM4T = 0x62, CPUType::ARM5 = 0x63, CPUType::ARM5T = 0x64, CPUType::ARM6 = 0x65,
  CPUType::ARM_XMAC = 0x66, CPUType::ARM_WMMX = 0x67, CPUType::ARM7 = 0x68, CPUType::ARM64 = 0x69,
  CPUType::Omni = 0x70, CPUType::Ia64 = 0x80, CPUType::Ia64_2 = 0x81, CPUType::CEE = 0x90,
  CPUType::AM33 = 0xa0, CPUType::M32R = 0xb0, CPUType::TriCore = 0xc0, CPUType::X64 = 0xd0,
  CPUType::EBC = 0xe0, CPUType::Thumb = 0xf0, CPUType::ARMNT = 0xf4, 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  SourceLanguage : uint8_t {
  C = 0x00, Cpp = 0x01, Fortran = 0x02, Masm = 0x03,
  Pascal = 0x04, Basic = 0x05, Cobol = 0x06, Link = 0x07,
  Cvtres = 0x08, Cvtpgd = 0x09, CSharp = 0x0a, VB = 0x0b,
  ILAsm = 0x0c, Java = 0x0d, JScript = 0x0e, MSIL = 0x0f,
  HLSL = 0x10, 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  CallingConvention : uint8_t {
  CallingConvention::NearC = 0x00, CallingConvention::FarC = 0x01, CallingConvention::NearPascal = 0x02, CallingConvention::FarPascal = 0x03,
  CallingConvention::NearFast = 0x04, CallingConvention::FarFast = 0x05, CallingConvention::NearStdCall = 0x07, CallingConvention::FarStdCall = 0x08,
  CallingConvention::NearSysCall = 0x09, CallingConvention::FarSysCall = 0x0a, CallingConvention::ThisCall = 0x0b, CallingConvention::MipsCall = 0x0c,
  CallingConvention::Generic = 0x0d, CallingConvention::AlphaCall = 0x0e, CallingConvention::PpcCall = 0x0f, CallingConvention::SHCall = 0x10,
  CallingConvention::ArmCall = 0x11, CallingConvention::AM33Call = 0x12, CallingConvention::TriCall = 0x13, CallingConvention::SH5Call = 0x14,
  CallingConvention::M32RCall = 0x15, CallingConvention::ClrCall = 0x16, CallingConvention::Inline, 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  ClassOptions : uint16_t {
  ClassOptions::None = 0x0000, ClassOptions::Packed = 0x0001, ClassOptions::HasConstructorOrDestructor = 0x0002, ClassOptions::HasOverloadedOperator = 0x0004,
  ClassOptions::Nested = 0x0008, ClassOptions::ContainsNestedClass = 0x0010, ClassOptions::HasOverloadedAssignmentOperator = 0x0020, ClassOptions::HasConversionOperator = 0x0040,
  ClassOptions::ForwardReference = 0x0080, ClassOptions::Scoped = 0x0100, ClassOptions::HasUniqueName = 0x0200, ClassOptions::Sealed = 0x0400,
  ClassOptions::Intrinsic = 0x2000
}
 
enum  FrameProcedureOptions : uint32_t {
  FrameProcedureOptions::None = 0x00000000, FrameProcedureOptions::HasAlloca = 0x00000001, FrameProcedureOptions::HasSetJmp = 0x00000002, FrameProcedureOptions::HasLongJmp = 0x00000004,
  FrameProcedureOptions::HasInlineAssembly = 0x00000008, FrameProcedureOptions::HasExceptionHandling = 0x00000010, FrameProcedureOptions::MarkedInline = 0x00000020, FrameProcedureOptions::HasStructuredExceptionHandling = 0x00000040,
  FrameProcedureOptions::Naked = 0x00000080, FrameProcedureOptions::SecurityChecks = 0x00000100, FrameProcedureOptions::AsynchronousExceptionHandling = 0x00000200, FrameProcedureOptions::NoStackOrderingForSecurityChecks = 0x00000400,
  FrameProcedureOptions::Inlined = 0x00000800, FrameProcedureOptions::StrictSecurityChecks = 0x00001000, FrameProcedureOptions::SafeBuffers = 0x00002000, FrameProcedureOptions::EncodedLocalBasePointerMask = 0x0000C000,
  FrameProcedureOptions::EncodedParamBasePointerMask = 0x00030000, FrameProcedureOptions::ProfileGuidedOptimization = 0x00040000, FrameProcedureOptions::ValidProfileCounts = 0x00080000, FrameProcedureOptions::OptimizedForSpeed = 0x00100000,
  FrameProcedureOptions::GuardCfg = 0x00200000, FrameProcedureOptions::GuardCfw = 0x00400000
}
 
enum  FunctionOptions : uint8_t { FunctionOptions::None = 0x00, FunctionOptions::CxxReturnUdt = 0x01, FunctionOptions::Constructor = 0x02, FunctionOptions::ConstructorWithVirtualBases = 0x04 }
 
enum  HfaKind : uint8_t { HfaKind::None = 0x00, HfaKind::Float = 0x01, HfaKind::Double = 0x02, HfaKind::Other = 0x03 }
 
enum  MemberAccess : uint8_t { MemberAccess::None = 0, MemberAccess::Private = 1, MemberAccess::Protected = 2, MemberAccess::Public = 3 }
 Source-level access specifier. (CV_access_e) More...
 
enum  MethodKind : uint8_t {
  MethodKind::Vanilla = 0x00, MethodKind::Virtual = 0x01, MethodKind::Static = 0x02, MethodKind::Friend = 0x03,
  MethodKind::IntroducingVirtual = 0x04, MethodKind::PureVirtual = 0x05, MethodKind::PureIntroducingVirtual = 0x06
}
 Part of member attribute flags. (CV_methodprop_e) More...
 
enum  MethodOptions : uint16_t {
  MethodOptions::None = 0x0000, MethodOptions::AccessMask = 0x0003, MethodOptions::MethodKindMask = 0x001c, MethodOptions::Pseudo = 0x0020,
  MethodOptions::NoInherit = 0x0040, MethodOptions::NoConstruct = 0x0080, MethodOptions::CompilerGenerated = 0x0100, MethodOptions::Sealed = 0x0200
}
 Equivalent to CV_fldattr_t bitfield. More...
 
enum  LabelType : uint16_t { LabelType::Near = 0x0, LabelType::Far = 0x4 }
 Equivalent to CV_LABEL_TYPE_e. More...
 
enum  ModifierOptions : uint16_t { ModifierOptions::None = 0x0000, ModifierOptions::Const = 0x0001, ModifierOptions::Volatile = 0x0002, ModifierOptions::Unaligned = 0x0004 }
 Equivalent to CV_modifier_t. More...
 
enum  DebugSubsectionKind : uint32_t {
  DebugSubsectionKind::None = 0, DebugSubsectionKind::Symbols = 0xf1, DebugSubsectionKind::Lines = 0xf2, DebugSubsectionKind::StringTable = 0xf3,
  DebugSubsectionKind::FileChecksums = 0xf4, DebugSubsectionKind::FrameData = 0xf5, DebugSubsectionKind::InlineeLines = 0xf6, DebugSubsectionKind::CrossScopeImports = 0xf7,
  DebugSubsectionKind::CrossScopeExports = 0xf8, DebugSubsectionKind::ILLines = 0xf9, DebugSubsectionKind::FuncMDTokenMap = 0xfa, DebugSubsectionKind::TypeMDTokenMap = 0xfb,
  DebugSubsectionKind::MergedAssemblyInput = 0xfc, DebugSubsectionKind::CoffSymbolRVA = 0xfd
}
 
enum  PointerKind : uint8_t {
  PointerKind::Near16 = 0x00, PointerKind::Far16 = 0x01, PointerKind::Huge16 = 0x02, PointerKind::BasedOnSegment = 0x03,
  PointerKind::BasedOnValue = 0x04, PointerKind::BasedOnSegmentValue = 0x05, PointerKind::BasedOnAddress = 0x06, PointerKind::BasedOnSegmentAddress = 0x07,
  PointerKind::BasedOnType = 0x08, PointerKind::BasedOnSelf = 0x09, PointerKind::Near32 = 0x0a, PointerKind::Far32 = 0x0b,
  PointerKind::Near64 = 0x0c
}
 Equivalent to CV_ptrtype_e. More...
 
enum  PointerMode : uint8_t {
  PointerMode::Pointer = 0x00, PointerMode::LValueReference = 0x01, PointerMode::PointerToDataMember = 0x02, PointerMode::PointerToMemberFunction = 0x03,
  PointerMode::RValueReference = 0x04
}
 Equivalent to CV_ptrmode_e. More...
 
enum  PointerOptions : uint32_t {
  PointerOptions::None = 0x00000000, PointerOptions::Flat32 = 0x00000100, PointerOptions::Volatile = 0x00000200, PointerOptions::Const = 0x00000400,
  PointerOptions::Unaligned = 0x00000800, PointerOptions::Restrict = 0x00001000, PointerOptions::WinRTSmartPointer = 0x00080000, PointerOptions::LValueRefThisPointer = 0x00100000,
  PointerOptions::RValueRefThisPointer = 0x00200000
}
 Equivalent to misc lfPointerAttr bitfields. More...
 
enum  PointerToMemberRepresentation : uint16_t {
  PointerToMemberRepresentation::Unknown = 0x00, PointerToMemberRepresentation::SingleInheritanceData = 0x01, PointerToMemberRepresentation::MultipleInheritanceData = 0x02, PointerToMemberRepresentation::VirtualInheritanceData = 0x03,
  PointerToMemberRepresentation::GeneralData = 0x04, PointerToMemberRepresentation::SingleInheritanceFunction = 0x05, PointerToMemberRepresentation::MultipleInheritanceFunction = 0x06, PointerToMemberRepresentation::VirtualInheritanceFunction = 0x07,
  PointerToMemberRepresentation::GeneralFunction = 0x08
}
 Equivalent to CV_pmtype_e. More...
 
enum  VFTableSlotKind : uint8_t {
  VFTableSlotKind::Near16 = 0x00, VFTableSlotKind::Far16 = 0x01, VFTableSlotKind::This = 0x02, VFTableSlotKind::Outer = 0x03,
  VFTableSlotKind::Meta = 0x04, VFTableSlotKind::Near = 0x05, VFTableSlotKind::Far = 0x06
}
 
enum  WindowsRTClassKind : uint8_t { WindowsRTClassKind::None = 0x00, WindowsRTClassKind::RefClass = 0x01, WindowsRTClassKind::ValueClass = 0x02, WindowsRTClassKind::Interface = 0x03 }
 
enum  LocalSymFlags : uint16_t {
  LocalSymFlags::None = 0, LocalSymFlags::IsParameter = 1 << 0, LocalSymFlags::IsAddressTaken = 1 << 1, LocalSymFlags::IsCompilerGenerated = 1 << 2,
  LocalSymFlags::IsAggregate = 1 << 3, LocalSymFlags::IsAggregated = 1 << 4, LocalSymFlags::IsAliased = 1 << 5, LocalSymFlags::IsAlias = 1 << 6,
  LocalSymFlags::IsReturnValue = 1 << 7, LocalSymFlags::IsOptimizedOut = 1 << 8, LocalSymFlags::IsEnregisteredGlobal = 1 << 9, LocalSymFlags::IsEnregisteredStatic = 1 << 10
}
 Corresponds to CV_LVARFLAGS bitfield. More...
 
enum  PublicSymFlags : uint32_t {
  PublicSymFlags::None = 0, PublicSymFlags::Code = 1 << 0, PublicSymFlags::Function = 1 << 1, PublicSymFlags::Managed = 1 << 2,
  PublicSymFlags::MSIL = 1 << 3
}
 Corresponds to the CV_PUBSYMFLAGS bitfield. More...
 
enum  ProcSymFlags : uint8_t {
  ProcSymFlags::None = 0, ProcSymFlags::HasFP = 1 << 0, ProcSymFlags::HasIRET = 1 << 1, ProcSymFlags::HasFRET = 1 << 2,
  ProcSymFlags::IsNoReturn = 1 << 3, ProcSymFlags::IsUnreachable = 1 << 4, ProcSymFlags::HasCustomCallingConv = 1 << 5, ProcSymFlags::IsNoInline = 1 << 6,
  ProcSymFlags::HasOptimizedDebugInfo = 1 << 7
}
 Corresponds to the CV_PROCFLAGS bitfield. More...
 
enum  CompileSym2Flags : uint32_t {
  CompileSym2Flags::None = 0, CompileSym2Flags::SourceLanguageMask = 0xFF, CompileSym2Flags::EC = 1 << 8, CompileSym2Flags::NoDbgInfo = 1 << 9,
  CompileSym2Flags::LTCG = 1 << 10, CompileSym2Flags::NoDataAlign = 1 << 11, CompileSym2Flags::ManagedPresent = 1 << 12, CompileSym2Flags::SecurityChecks = 1 << 13,
  CompileSym2Flags::HotPatch = 1 << 14, CompileSym2Flags::CVTCIL = 1 << 15, CompileSym2Flags::MSILModule = 1 << 16
}
 Corresponds to COMPILESYM2::Flags bitfield. More...
 
enum  CompileSym3Flags : uint32_t {
  CompileSym3Flags::None = 0, CompileSym3Flags::SourceLanguageMask = 0xFF, CompileSym3Flags::EC = 1 << 8, CompileSym3Flags::NoDbgInfo = 1 << 9,
  CompileSym3Flags::LTCG = 1 << 10, CompileSym3Flags::NoDataAlign = 1 << 11, CompileSym3Flags::ManagedPresent = 1 << 12, CompileSym3Flags::SecurityChecks = 1 << 13,
  CompileSym3Flags::HotPatch = 1 << 14, CompileSym3Flags::CVTCIL = 1 << 15, CompileSym3Flags::MSILModule = 1 << 16, CompileSym3Flags::Sdl = 1 << 17,
  CompileSym3Flags::PGO = 1 << 18, CompileSym3Flags::Exp = 1 << 19
}
 Corresponds to COMPILESYM3::Flags bitfield. More...
 
enum  ExportFlags : uint16_t {
  ExportFlags::None = 0, ExportFlags::IsConstant = 1 << 0, ExportFlags::IsData = 1 << 1, ExportFlags::IsPrivate = 1 << 2,
  ExportFlags::HasNoName = 1 << 3, ExportFlags::HasExplicitOrdinal = 1 << 4, ExportFlags::IsForwarder = 1 << 5
}
 
enum  BinaryAnnotationsOpCode : uint32_t {
  BinaryAnnotationsOpCode::Invalid, BinaryAnnotationsOpCode::CodeOffset, BinaryAnnotationsOpCode::ChangeCodeOffsetBase, BinaryAnnotationsOpCode::ChangeCodeOffset,
  BinaryAnnotationsOpCode::ChangeCodeLength, BinaryAnnotationsOpCode::ChangeFile, BinaryAnnotationsOpCode::ChangeLineOffset, BinaryAnnotationsOpCode::ChangeLineEndDelta,
  BinaryAnnotationsOpCode::ChangeRangeKind, BinaryAnnotationsOpCode::ChangeColumnStart, BinaryAnnotationsOpCode::ChangeColumnEndDelta, BinaryAnnotationsOpCode::ChangeCodeOffsetAndLineOffset,
  BinaryAnnotationsOpCode::ChangeCodeLengthAndCodeOffset, BinaryAnnotationsOpCode::ChangeColumnEnd
}
 
enum  FrameCookieKind : uint8_t { FrameCookieKind::Copy, FrameCookieKind::XorStackPointer, FrameCookieKind::XorFramePointer, FrameCookieKind::XorR13 }
 
enum  RegisterId : uint16_t { RegisterId::CV_REGISTER }
 
enum  EncodedFramePtrReg : uint8_t { EncodedFramePtrReg::None = 0, EncodedFramePtrReg::StackPtr = 1, EncodedFramePtrReg::FramePtr = 2, EncodedFramePtrReg::BasePtr = 3 }
 Two-bit value indicating which register is the designated frame pointer register. More...
 
enum  ThunkOrdinal : uint8_t {
  ThunkOrdinal::Standard, ThunkOrdinal::ThisAdjustor, ThunkOrdinal::Vcall, ThunkOrdinal::Pcode,
  ThunkOrdinal::UnknownLoad, ThunkOrdinal::TrampIncremental, ThunkOrdinal::BranchIsland
}
 These values correspond to the THUNK_ORDINAL enumeration. More...
 
enum  TrampolineType : uint16_t { TrampolineType::TrampIncremental, TrampolineType::BranchIsland }
 
enum  FileChecksumKind : uint8_t { FileChecksumKind::None, FileChecksumKind::MD5, FileChecksumKind::SHA1, FileChecksumKind::SHA256 }
 
enum  LineFlags : uint16_t { LF_None = 0, LF_HaveColumns = 1 }
 
enum  CodeViewContainer { CodeViewContainer::ObjectFile, CodeViewContainer::Pdb }
 
enum  cv_error_code {
  cv_error_code::unspecified = 1, cv_error_code::insufficient_buffer, cv_error_code::operation_unsupported, cv_error_code::corrupt_record,
  cv_error_code::no_records, cv_error_code::unknown_member_record
}
 
enum  ContinuationRecordKind { ContinuationRecordKind::FieldList, ContinuationRecordKind::MethodOverloadList }
 
enum  VisitorDataSource { VDS_BytesPresent, VDS_BytesExternal }
 
enum  InlineeLinesSignature : uint32_t { InlineeLinesSignature::Normal, InlineeLinesSignature::ExtraFiles }
 
enum  : unsigned { MaxRecordLength = 0xFF00 }
 Limit on the size of all codeview symbol and type records, including the RecordPrefix. More...
 
enum  : uint16_t { MaxDefRange = 0xf000 }
 
enum  GlobalTypeHashAlg : uint16_t { GlobalTypeHashAlg::SHA1 = 0, GlobalTypeHashAlg::SHA1_8 }
 
enum  SimpleTypeKind : uint32_t {
  SimpleTypeKind::None = 0x0000, SimpleTypeKind::Void = 0x0003, SimpleTypeKind::NotTranslated = 0x0007, SimpleTypeKind::HResult = 0x0008,
  SimpleTypeKind::SignedCharacter = 0x0010, SimpleTypeKind::UnsignedCharacter = 0x0020, SimpleTypeKind::NarrowCharacter = 0x0070, SimpleTypeKind::WideCharacter = 0x0071,
  SimpleTypeKind::Character16 = 0x007a, SimpleTypeKind::Character32 = 0x007b, SimpleTypeKind::SByte = 0x0068, SimpleTypeKind::Byte = 0x0069,
  SimpleTypeKind::Int16Short = 0x0011, SimpleTypeKind::UInt16Short = 0x0021, SimpleTypeKind::Int16 = 0x0072, SimpleTypeKind::UInt16 = 0x0073,
  SimpleTypeKind::Int32Long = 0x0012, SimpleTypeKind::UInt32Long = 0x0022, SimpleTypeKind::Int32 = 0x0074, SimpleTypeKind::UInt32 = 0x0075,
  SimpleTypeKind::Int64Quad = 0x0013, SimpleTypeKind::UInt64Quad = 0x0023, SimpleTypeKind::Int64 = 0x0076, SimpleTypeKind::UInt64 = 0x0077,
  SimpleTypeKind::Int128Oct = 0x0014, SimpleTypeKind::UInt128Oct = 0x0024, SimpleTypeKind::Int128 = 0x0078, SimpleTypeKind::UInt128 = 0x0079,
  SimpleTypeKind::Float16 = 0x0046, SimpleTypeKind::Float32 = 0x0040, SimpleTypeKind::Float32PartialPrecision = 0x0045, SimpleTypeKind::Float48 = 0x0044,
  SimpleTypeKind::Float64 = 0x0041, SimpleTypeKind::Float80 = 0x0042, SimpleTypeKind::Float128 = 0x0043, SimpleTypeKind::Complex16 = 0x0056,
  SimpleTypeKind::Complex32 = 0x0050, SimpleTypeKind::Complex32PartialPrecision = 0x0055, SimpleTypeKind::Complex48 = 0x0054, SimpleTypeKind::Complex64 = 0x0051,
  SimpleTypeKind::Complex80 = 0x0052, SimpleTypeKind::Complex128 = 0x0053, SimpleTypeKind::Boolean8 = 0x0030, SimpleTypeKind::Boolean16 = 0x0031,
  SimpleTypeKind::Boolean32 = 0x0032, SimpleTypeKind::Boolean64 = 0x0033, SimpleTypeKind::Boolean128 = 0x0034
}
 
enum  SimpleTypeMode : uint32_t {
  SimpleTypeMode::Direct = 0x00000000, SimpleTypeMode::NearPointer = 0x00000100, SimpleTypeMode::FarPointer = 0x00000200, SimpleTypeMode::HugePointer = 0x00000300,
  SimpleTypeMode::NearPointer32 = 0x00000400, SimpleTypeMode::FarPointer32 = 0x00000500, SimpleTypeMode::NearPointer64 = 0x00000600, SimpleTypeMode::NearPointer128 = 0x00000700
}
 
enum  TiRefKind { TiRefKind::TypeRef, TiRefKind::IndexRef }
 

Functions

RegisterId decodeFramePtrReg (EncodedFramePtrReg EncodedReg, CPUType CPU)
 
EncodedFramePtrReg encodeFramePtrReg (RegisterId Reg, CPUType CPU)
 
uint32_t alignOf (CodeViewContainer Container)
 
const std::error_categoryCVErrorCategory ()
 
std::error_code make_error_code (cv_error_code E)
 
template<typename Record , typename Func >
Error forEachCodeViewRecord (ArrayRef< uint8_t > StreamBuffer, Func F)
 
template<typename Kind >
Expected< CVRecord< Kind > > readCVRecordFromStream (BinaryStreamRef Stream, uint32_t Offset)
 Read a complete record from a stream at a random offset. More...
 
Error visitTypeRecord (CVType &Record, TypeIndex Index, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
 
Error visitTypeRecord (CVType &Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
 
Error visitMemberRecord (CVMemberRecord Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
 
Error visitMemberRecord (TypeLeafKind Kind, ArrayRef< uint8_t > Record, TypeVisitorCallbacks &Callbacks)
 
Error visitMemberRecordStream (ArrayRef< uint8_t > FieldList, TypeVisitorCallbacks &Callbacks)
 
Error visitTypeStream (const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
 
Error visitTypeStream (CVTypeRange Types, TypeVisitorCallbacks &Callbacks)
 
Error visitTypeStream (TypeCollection &Types, TypeVisitorCallbacks &Callbacks)
 
Error visitDebugSubsection (const DebugSubsectionRecord &R, DebugSubsectionVisitor &V, const StringsAndChecksumsRef &State)
 
template<typename T >
Error visitDebugSubsections (T &&FragmentRange, DebugSubsectionVisitor &V)
 
template<typename T >
Error visitDebugSubsections (T &&FragmentRange, DebugSubsectionVisitor &V, const DebugStringTableSubsectionRef &Strings)
 
template<typename T >
Error visitDebugSubsections (T &&FragmentRange, DebugSubsectionVisitor &V, const DebugStringTableSubsectionRef &Strings, const DebugChecksumsSubsectionRef &Checksums)
 
ArrayRef< EnumEntry< SymbolKind > > getSymbolTypeNames ()
 
ArrayRef< EnumEntry< TypeLeafKind > > getTypeLeafNames ()
 
ArrayRef< EnumEntry< uint16_t > > getRegisterNames ()
 
ArrayRef< EnumEntry< uint32_t > > getPublicSymFlagNames ()
 
ArrayRef< EnumEntry< uint8_t > > getProcSymFlagNames ()
 
ArrayRef< EnumEntry< uint16_t > > getLocalFlagNames ()
 
ArrayRef< EnumEntry< uint8_t > > getFrameCookieKindNames ()
 
ArrayRef< EnumEntry< SourceLanguage > > getSourceLanguageNames ()
 
ArrayRef< EnumEntry< uint32_t > > getCompileSym2FlagNames ()
 
ArrayRef< EnumEntry< uint32_t > > getCompileSym3FlagNames ()
 
ArrayRef< EnumEntry< uint32_t > > getFileChecksumNames ()
 
ArrayRef< EnumEntry< unsigned > > getCPUTypeNames ()
 
ArrayRef< EnumEntry< uint32_t > > getFrameProcSymFlagNames ()
 
ArrayRef< EnumEntry< uint16_t > > getExportSymFlagNames ()
 
ArrayRef< EnumEntry< uint32_t > > getModuleSubstreamKindNames ()
 
ArrayRef< EnumEntry< uint8_t > > getThunkOrdinalNames ()
 
ArrayRef< EnumEntry< uint16_t > > getTrampolineNames ()
 
ArrayRef< EnumEntry< COFF::SectionCharacteristics > > getImageSectionCharacteristicNames ()
 
detail::GuidAdapter fmt_guid (StringRef Item)
 
detail::GuidAdapter fmt_guid (ArrayRef< uint8_t > Item)
 
bool operator== (const FunctionId &A, const FunctionId &B)
 
bool operator!= (const FunctionId &A, const FunctionId &B)
 
bool operator< (const FunctionId &A, const FunctionId &B)
 
bool operator<= (const FunctionId &A, const FunctionId &B)
 
bool operator> (const FunctionId &A, const FunctionId &B)
 
bool operator>= (const FunctionId &A, const FunctionId &B)
 
bool operator== (const GUID &LHS, const GUID &RHS)
 
bool operator< (const GUID &LHS, const GUID &RHS)
 
bool operator<= (const GUID &LHS, const GUID &RHS)
 
bool operator> (const GUID &LHS, const GUID &RHS)
 
bool operator>= (const GUID &LHS, const GUID &RHS)
 
bool operator!= (const GUID &LHS, const GUID &RHS)
 
raw_ostreamoperator<< (raw_ostream &OS, const GUID &Guid)
 
std::string computeTypeName (TypeCollection &Types, TypeIndex Index)
 
StringRef getSymbolName (CVSymbol Sym)
 
StringRef getBytesAsCharacters (ArrayRef< uint8_t > LeafData)
 Reinterpret a byte array as an array of characters. More...
 
StringRef getBytesAsCString (ArrayRef< uint8_t > LeafData)
 
Error consume (BinaryStreamReader &Reader)
 
Error consume (BinaryStreamReader &Reader, APSInt &Num)
 Decodes a numeric "leaf" value. More...
 
Error consume_numeric (BinaryStreamReader &Reader, uint64_t &Value)
 Decodes a numeric leaf value that is known to be a particular type. More...
 
Error consume (BinaryStreamReader &Reader, uint32_t &Item)
 Decodes signed and unsigned fixed-length integers. More...
 
Error consume (BinaryStreamReader &Reader, int32_t &Item)
 
Error consume (BinaryStreamReader &Reader, StringRef &Item)
 Decodes a null terminated string. More...
 
Error consume (StringRef &Data, APSInt &Num)
 
Error consume (StringRef &Data, uint32_t &Item)
 
template<typename T >
Error consume (BinaryStreamReader &Reader, T *&Item)
 Decodes an arbitrary object whose layout matches that of the underlying byte sequence, and returns a pointer to the object. More...
 
template<typename T , typename U >
serialize_conditional_impl< T, U > serialize_conditional (T &Item, U Func)
 
template<typename T , typename U >
serialize_array_impl< T, U > serialize_array (ArrayRef< T > &Item, U Func)
 
serialize_null_term_string_array_impl serialize_null_term_string_array (std::vector< StringRef > &Item)
 
template<typename T >
serialize_vector_tail_impl< Tserialize_array_tail (std::vector< T > &Item)
 
template<typename T >
serialize_arrayref_tail_impl< Tserialize_array_tail (ArrayRef< T > &Item)
 
template<typename T >
serialize_numeric_impl< Tserialize_numeric (T &Item)
 
template<typename T , typename U >
Error consume (BinaryStreamReader &Reader, const serialize_conditional_impl< T, U > &Item)
 
template<typename T , typename U >
Error consume (BinaryStreamReader &Reader, const serialize_array_impl< T, U > &Item)
 
Error consume (BinaryStreamReader &Reader, const serialize_null_term_string_array_impl &Item)
 
template<typename T >
Error consume (BinaryStreamReader &Reader, const serialize_vector_tail_impl< T > &Item)
 
template<typename T >
Error consume (BinaryStreamReader &Reader, const serialize_arrayref_tail_impl< T > &Item)
 
template<typename T >
Error consume (BinaryStreamReader &Reader, const serialize_numeric_impl< T > &Item)
 
template<typename T , typename U , typename... Args>
Error consume (BinaryStreamReader &Reader, T &&X, U &&Y, Args &&... Rest)
 
Expected< CVSymbolreadSymbolFromStream (BinaryStreamRef Stream, uint32_t Offset)
 
bool symbolOpensScope (SymbolKind Kind)
 Return true if this symbol opens a scope. More...
 
bool symbolEndsScope (SymbolKind Kind)
 Return true if this ssymbol ends a scope. More...
 
uint32_t getScopeEndOffset (const CVSymbol &Symbol)
 Given a symbol P for which symbolOpensScope(P) == true, return the corresponding end offset. More...
 
uint32_t getScopeParentOffset (const CVSymbol &Symbol)
 
CVSymbolArray limitSymbolArrayToScope (const CVSymbolArray &Symbols, uint32_t ScopeBegin)
 
void printTypeIndex (ScopedPrinter &Printer, StringRef FieldName, TypeIndex TI, TypeCollection &Types)
 
void discoverTypeIndices (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TiReference > &Refs)
 
void discoverTypeIndices (const CVType &Type, SmallVectorImpl< TiReference > &Refs)
 
void discoverTypeIndices (const CVType &Type, SmallVectorImpl< TypeIndex > &Indices)
 
void discoverTypeIndices (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TypeIndex > &Indices)
 
bool discoverTypeIndicesInSymbol (const CVSymbol &Symbol, SmallVectorImpl< TiReference > &Refs)
 Discover type indices in symbol records. More...
 
bool discoverTypeIndicesInSymbol (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TiReference > &Refs)
 
bool discoverTypeIndicesInSymbol (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TypeIndex > &Indices)
 
bool isUdtForwardRef (CVType CVT)
 Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION, or LF_ENUM with the forward ref class option. More...
 
TypeIndex getModifiedType (const CVType &CVT)
 Given a CVType which is assumed to be an LF_MODIFIER, return the TypeIndex of the type that the LF_MODIFIER modifies. More...
 
Error mergeTypeRecords (MergingTypeTableBuilder &Dest, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Types)
 Merge one set of type records into another. More...
 
Error mergeIdRecords (MergingTypeTableBuilder &Dest, ArrayRef< TypeIndex > Types, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Ids)
 Merge one set of id records into another. More...
 
Error mergeTypeAndIdRecords (MergingTypeTableBuilder &DestIds, MergingTypeTableBuilder &DestTypes, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &IdsAndTypes, Optional< uint32_t > &PCHSignature)
 Merge a unified set of type and id records, splitting them into separate output streams. More...
 
Error mergeTypeAndIdRecords (GlobalTypeTableBuilder &DestIds, GlobalTypeTableBuilder &DestTypes, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &IdsAndTypes, ArrayRef< GloballyHashedType > Hashes, Optional< uint32_t > &PCHSignature)
 
Error mergeTypeRecords (GlobalTypeTableBuilder &Dest, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Types, ArrayRef< GloballyHashedType > Hashes, Optional< uint32_t > &PCHSignature)
 
Error mergeIdRecords (GlobalTypeTableBuilder &Dest, ArrayRef< TypeIndex > Types, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Ids, ArrayRef< GloballyHashedType > Hashes)
 

Typedef Documentation

◆ CVSymbol

Definition at line 987 of file SymbolRecord.h.

◆ CVSymbolArray

Definition at line 988 of file SymbolRecord.h.

◆ CVType

Definition at line 36 of file TypeRecord.h.

◆ CVTypeArray

Definition at line 43 of file TypeRecord.h.

◆ CVTypeRange

Definition at line 44 of file TypeRecord.h.

◆ DebugSubsectionArray

Definition at line 97 of file DebugSubsectionRecord.h.

◆ RemappedType

Definition at line 37 of file TypeRecord.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : unsigned

Limit on the size of all codeview symbol and type records, including the RecordPrefix.

MSVC does not emit any records larger than this.

Enumerator
MaxRecordLength 

Definition at line 32 of file RecordSerialization.h.

◆ anonymous enum

anonymous enum : uint16_t
Enumerator
MaxDefRange 

Definition at line 432 of file SymbolRecord.h.

◆ BinaryAnnotationsOpCode

Enumerator
Invalid 
CodeOffset 
ChangeCodeOffsetBase 
ChangeCodeOffset 
ChangeCodeLength 
ChangeFile 
ChangeLineOffset 
ChangeLineEndDelta 
ChangeRangeKind 
ChangeColumnStart 
ChangeColumnEndDelta 
ChangeCodeOffsetAndLineOffset 
ChangeCodeLengthAndCodeOffset 
ChangeColumnEnd 

Definition at line 485 of file CodeView.h.

◆ CallingConvention

enum llvm::codeview::CallingConvention : uint8_t
strong

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.

Enumerator
NearC 
FarC 
NearPascal 
FarPascal 
NearFast 
FarFast 
NearStdCall 
FarStdCall 
NearSysCall 
FarSysCall 
ThisCall 
MipsCall 
Generic 
AlphaCall 
PpcCall 
SHCall 
ArmCall 
AM33Call 
TriCall 
SH5Call 
M32RCall 
ClrCall 
Inline 
NearVector 

Definition at line 173 of file CodeView.h.

◆ ClassOptions

enum llvm::codeview::ClassOptions : uint16_t
strong
Enumerator
None 
Packed 
HasConstructorOrDestructor 
HasOverloadedOperator 
Nested 
ContainsNestedClass 
HasOverloadedAssignmentOperator 
HasConversionOperator 
ForwardReference 
Scoped 
HasUniqueName 
Sealed 
Intrinsic 

Definition at line 201 of file CodeView.h.

◆ CodeViewContainer

Enumerator
ObjectFile 
Pdb 

Definition at line 587 of file CodeView.h.

◆ CompileSym2Flags

Corresponds to COMPILESYM2::Flags bitfield.

Enumerator
None 
SourceLanguageMask 
EC 
NoDbgInfo 
LTCG 
NoDataAlign 
ManagedPresent 
SecurityChecks 
HotPatch 
CVTCIL 
MSILModule 

Definition at line 439 of file CodeView.h.

◆ CompileSym3Flags

Corresponds to COMPILESYM3::Flags bitfield.

Enumerator
None 
SourceLanguageMask 
EC 
NoDbgInfo 
LTCG 
NoDataAlign 
ManagedPresent 
SecurityChecks 
HotPatch 
CVTCIL 
MSILModule 
Sdl 
PGO 
Exp 

Definition at line 455 of file CodeView.h.

◆ ContinuationRecordKind

Enumerator
FieldList 
MethodOverloadList 

Definition at line 33 of file ContinuationRecordBuilder.h.

◆ CPUType

enum llvm::codeview::CPUType : uint16_t
strong

These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx.

Enumerator
Intel8080 
Intel8086 
Intel80286 
Intel80386 
Intel80486 
Pentium 
PentiumPro 
Pentium3 
MIPS 
MIPS16 
MIPS32 
MIPS64 
MIPSI 
MIPSII 
MIPSIII 
MIPSIV 
MIPSV 
M68000 
M68010 
M68020 
M68030 
M68040 
Alpha 
Alpha21164 
Alpha21164A 
Alpha21264 
Alpha21364 
PPC601 
PPC603 
PPC604 
PPC620 
PPCFP 
PPCBE 
SH3 
SH3E 
SH3DSP 
SH4 
SHMedia 
ARM3 
ARM4 
ARM4T 
ARM5 
ARM5T 
ARM6 
ARM_XMAC 
ARM_WMMX 
ARM7 
ARM64 
Omni 
Ia64 
Ia64_2 
CEE 
AM33 
M32R 
TriCore 
X64 
EBC 
Thumb 
ARMNT 
D3D11_Shader 

Definition at line 79 of file CodeView.h.

◆ cv_error_code

Enumerator
unspecified 
insufficient_buffer 
operation_unsupported 
corrupt_record 
no_records 
unknown_member_record 

Definition at line 19 of file CodeViewError.h.

◆ DebugSubsectionKind

Enumerator
None 
Symbols 
Lines 
StringTable 
FileChecksums 
FrameData 
InlineeLines 
CrossScopeImports 
CrossScopeExports 
ILLines 
FuncMDTokenMap 
TypeMDTokenMap 
MergedAssemblyInput 
CoffSymbolRVA 

Definition at line 307 of file CodeView.h.

◆ EncodedFramePtrReg

enum llvm::codeview::EncodedFramePtrReg : uint8_t
strong

Two-bit value indicating which register is the designated frame pointer register.

Appears in the S_FRAMEPROC record flags.

Enumerator
None 
StackPtr 
FramePtr 
BasePtr 

Definition at line 519 of file CodeView.h.

◆ ExportFlags

enum llvm::codeview::ExportFlags : uint16_t
strong
Enumerator
None 
IsConstant 
IsData 
IsPrivate 
HasNoName 
HasExplicitOrdinal 
IsForwarder 

Definition at line 473 of file CodeView.h.

◆ FileChecksumKind

enum llvm::codeview::FileChecksumKind : uint8_t
strong
Enumerator
None 
MD5 
SHA1 
SHA256 

Definition at line 544 of file CodeView.h.

◆ FrameCookieKind

enum llvm::codeview::FrameCookieKind : uint8_t
strong
Enumerator
Copy 
XorStackPointer 
XorFramePointer 
XorR13 

Definition at line 503 of file CodeView.h.

◆ FrameProcedureOptions

Enumerator
None 
HasAlloca 
HasSetJmp 
HasLongJmp 
HasInlineAssembly 
HasExceptionHandling 
MarkedInline 
HasStructuredExceptionHandling 
Naked 
SecurityChecks 
AsynchronousExceptionHandling 
NoStackOrderingForSecurityChecks 
Inlined 
StrictSecurityChecks 
SafeBuffers 
EncodedLocalBasePointerMask 
EncodedParamBasePointerMask 
ProfileGuidedOptimization 
ValidProfileCounts 
OptimizedForSpeed 
GuardCfg 
GuardCfw 

Definition at line 218 of file CodeView.h.

◆ FunctionOptions

enum llvm::codeview::FunctionOptions : uint8_t
strong
Enumerator
None 
CxxReturnUdt 
Constructor 
ConstructorWithVirtualBases 

Definition at line 244 of file CodeView.h.

◆ GlobalTypeHashAlg

enum llvm::codeview::GlobalTypeHashAlg : uint16_t
strong
Enumerator
SHA1 
SHA1_8 

Definition at line 61 of file TypeHashing.h.

◆ HfaKind

enum llvm::codeview::HfaKind : uint8_t
strong
Enumerator
None 
Float 
Double 
Other 

Definition at line 252 of file CodeView.h.

◆ InlineeLinesSignature

Enumerator
Normal 
ExtraFiles 

Definition at line 32 of file DebugInlineeLinesSubsection.h.

◆ LabelType

enum llvm::codeview::LabelType : uint16_t
strong

Equivalent to CV_LABEL_TYPE_e.

Enumerator
Near 
Far 

Definition at line 292 of file CodeView.h.

◆ LineFlags

enum llvm::codeview::LineFlags : uint16_t
Enumerator
LF_None 
LF_HaveColumns 

Definition at line 546 of file CodeView.h.

◆ LocalSymFlags

enum llvm::codeview::LocalSymFlags : uint16_t
strong

Corresponds to CV_LVARFLAGS bitfield.

Enumerator
None 
IsParameter 
IsAddressTaken 
IsCompilerGenerated 
IsAggregate 
IsAggregated 
IsAliased 
IsAlias 
IsReturnValue 
IsOptimizedOut 
IsEnregisteredGlobal 
IsEnregisteredStatic 

Definition at line 398 of file CodeView.h.

◆ MemberAccess

enum llvm::codeview::MemberAccess : uint8_t
strong

Source-level access specifier. (CV_access_e)

Enumerator
None 
Private 
Protected 
Public 

Definition at line 260 of file CodeView.h.

◆ MethodKind

enum llvm::codeview::MethodKind : uint8_t
strong

Part of member attribute flags. (CV_methodprop_e)

Enumerator
Vanilla 
Virtual 
Static 
Friend 
IntroducingVirtual 
PureVirtual 
PureIntroducingVirtual 

Definition at line 268 of file CodeView.h.

◆ MethodOptions

enum llvm::codeview::MethodOptions : uint16_t
strong

Equivalent to CV_fldattr_t bitfield.

Enumerator
None 
AccessMask 
MethodKindMask 
Pseudo 
NoInherit 
NoConstruct 
CompilerGenerated 
Sealed 

Definition at line 279 of file CodeView.h.

◆ ModifierOptions

enum llvm::codeview::ModifierOptions : uint16_t
strong

Equivalent to CV_modifier_t.

TODO: Add flag for _Atomic modifier

Enumerator
None 
Const 
Volatile 
Unaligned 

Definition at line 299 of file CodeView.h.

◆ PointerKind

enum llvm::codeview::PointerKind : uint8_t
strong

Equivalent to CV_ptrtype_e.

Enumerator
Near16 
Far16 
Huge16 
BasedOnSegment 
BasedOnValue 
BasedOnSegmentValue 
BasedOnAddress 
BasedOnSegmentAddress 
BasedOnType 
BasedOnSelf 
Near32 
Far32 
Near64 

Definition at line 328 of file CodeView.h.

◆ PointerMode

enum llvm::codeview::PointerMode : uint8_t
strong

Equivalent to CV_ptrmode_e.

Enumerator
Pointer 
LValueReference 
PointerToDataMember 
PointerToMemberFunction 
RValueReference 

Definition at line 345 of file CodeView.h.

◆ PointerOptions

Equivalent to misc lfPointerAttr bitfields.

Enumerator
None 
Flat32 
Volatile 
Const 
Unaligned 
Restrict 
WinRTSmartPointer 
LValueRefThisPointer 
RValueRefThisPointer 

Definition at line 354 of file CodeView.h.

◆ PointerToMemberRepresentation

Equivalent to CV_pmtype_e.

Enumerator
Unknown 
SingleInheritanceData 
MultipleInheritanceData 
VirtualInheritanceData 
GeneralData 
SingleInheritanceFunction 
MultipleInheritanceFunction 
VirtualInheritanceFunction 
GeneralFunction 

Definition at line 368 of file CodeView.h.

◆ ProcSymFlags

enum llvm::codeview::ProcSymFlags : uint8_t
strong

Corresponds to the CV_PROCFLAGS bitfield.

Enumerator
None 
HasFP 
HasIRET 
HasFRET 
IsNoReturn 
IsUnreachable 
HasCustomCallingConv 
IsNoInline 
HasOptimizedDebugInfo 

Definition at line 425 of file CodeView.h.

◆ PublicSymFlags

Corresponds to the CV_PUBSYMFLAGS bitfield.

Enumerator
None 
Code 
Function 
Managed 
MSIL 

Definition at line 415 of file CodeView.h.

◆ RegisterId

enum llvm::codeview::RegisterId : uint16_t
strong
Enumerator
CV_REGISTER 

Definition at line 511 of file CodeView.h.

◆ SimpleTypeKind

Enumerator
None 
Void 
NotTranslated 
HResult 
SignedCharacter 
UnsignedCharacter 
NarrowCharacter 
WideCharacter 
Character16 
Character32 
SByte 
Byte 
Int16Short 
UInt16Short 
Int16 
UInt16 
Int32Long 
UInt32Long 
Int32 
UInt32 
Int64Quad 
UInt64Quad 
Int64 
UInt64 
Int128Oct 
UInt128Oct 
Int128 
UInt128 
Float16 
Float32 
Float32PartialPrecision 
Float48 
Float64 
Float80 
Float128 
Complex16 
Complex32 
Complex32PartialPrecision 
Complex48 
Complex64 
Complex80 
Complex128 
Boolean8 
Boolean16 
Boolean32 
Boolean64 
Boolean128 

Definition at line 27 of file TypeIndex.h.

◆ SimpleTypeMode

Enumerator
Direct 
NearPointer 
FarPointer 
HugePointer 
NearPointer32 
FarPointer32 
NearPointer64 
NearPointer128 

Definition at line 82 of file TypeIndex.h.

◆ SourceLanguage

These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx.

Enumerator
Cpp 
Fortran 
Masm 
Pascal 
Basic 
Cobol 
Link 
Cvtres 
Cvtpgd 
CSharp 
VB 
ILAsm 
Java 
JScript 
MSIL 
HLSL 

The DMD compiler emits 'D' for the CV source language.

Microsoft doesn't have an enumerator for it yet.

Definition at line 144 of file CodeView.h.

◆ SymbolKind

enum llvm::codeview::SymbolKind : uint16_t

Duplicate copy of the above enum, but using the official CV names.

Useful for reference purposes and when dealing with unknown record types.

Enumerator
CV_SYMBOL 
CV_SYMBOL 
CV_SYMBOL 
CV_SYMBOL 
CV_SYMBOL 
CV_SYMBOL 
SYMBOL_RECORD 
SYMBOL_RECORD_ALIAS 
CV_SYMBOL 
CV_SYMBOL 
CV_SYMBOL 

Definition at line 48 of file CodeView.h.

◆ SymbolRecordKind

enum llvm::codeview::SymbolRecordKind : uint16_t
strong

Distinguishes individual records in the Symbols subsection of a .debug$S section.

Equivalent to SYM_ENUM_e in cvinfo.h.

Enumerator
SYMBOL_RECORD 
CV_SYMBOL 
SYMBOL_RECORD_ALIAS 
CV_SYMBOL 

Definition at line 41 of file CodeView.h.

◆ ThunkOrdinal

enum llvm::codeview::ThunkOrdinal : uint8_t
strong

These values correspond to the THUNK_ORDINAL enumeration.

Enumerator
Standard 
ThisAdjustor 
Vcall 
Pcode 
UnknownLoad 
TrampIncremental 
BranchIsland 

Definition at line 531 of file CodeView.h.

◆ TiRefKind

Enumerator
TypeRef 
IndexRef 

Definition at line 20 of file TypeIndexDiscovery.h.

◆ TrampolineType

enum llvm::codeview::TrampolineType : uint16_t
strong
Enumerator
TrampIncremental 
BranchIsland 

Definition at line 541 of file CodeView.h.

◆ TypeLeafKind

Duplicate copy of the above enum, but using the official CV names.

Useful for reference purposes and when dealing with unknown record types.

Enumerator
CV_TYPE 
CV_TYPE 
TYPE_RECORD 
TYPE_RECORD_ALIAS 
MEMBER_RECORD 
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 

Definition at line 34 of file CodeView.h.

◆ TypeRecordKind

enum llvm::codeview::TypeRecordKind : uint16_t
strong

Distinguishes individual records in .debug$T or .debug$P section or PDB type stream.

The documentation and headers talk about this as the "leaf" type.

Enumerator
TYPE_RECORD 
CV_TYPE 
TYPE_RECORD_ALIAS 
MEMBER_RECORD 
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 

Definition at line 27 of file CodeView.h.

◆ VFTableSlotKind

enum llvm::codeview::VFTableSlotKind : uint8_t
strong
Enumerator
Near16 
Far16 
This 
Outer 
Meta 
Near 
Far 

Definition at line 380 of file CodeView.h.

◆ VisitorDataSource

Enumerator
VDS_BytesPresent 
VDS_BytesExternal 

Definition at line 22 of file CVTypeVisitor.h.

◆ WindowsRTClassKind

enum llvm::codeview::WindowsRTClassKind : uint8_t
strong
Enumerator
None 
RefClass 
ValueClass 
Interface 

Definition at line 390 of file CodeView.h.

Function Documentation

◆ alignOf()

uint32_t llvm::codeview::alignOf ( CodeViewContainer  Container)
inline

◆ computeTypeName()

std::string llvm::codeview::computeTypeName ( TypeCollection Types,
TypeIndex  Index 
)

◆ consume() [1/15]

Error llvm::codeview::consume ( BinaryStreamReader Reader)
inline

◆ consume() [2/15]

Error llvm::codeview::consume ( BinaryStreamReader Reader,
APSInt Num 
)

Decodes a numeric "leaf" value.

These are integer literals encountered in the type stream. If the value is positive and less than LF_NUMERIC (1 << 15), it is emitted directly in Data. Otherwise, it has a tag like LF_CHAR that indicates the bitwidth and sign of the numeric data.

Definition at line 37 of file RecordSerialization.cpp.

References llvm::lltok::APSInt, corrupt_record, EC, N, llvm::BinaryStreamReader::readInteger(), and llvm::Error::success().

◆ consume() [3/15]

Error llvm::codeview::consume ( BinaryStreamReader Reader,
uint32_t Item 
)

Decodes signed and unsigned fixed-length integers.

Definition at line 127 of file RecordSerialization.cpp.

References llvm::BinaryStreamReader::readInteger().

◆ consume() [4/15]

Error llvm::codeview::consume ( BinaryStreamReader Reader,
int32_t &  Item 
)

Definition at line 140 of file RecordSerialization.cpp.

References llvm::BinaryStreamReader::readInteger().

◆ consume() [5/15]

Error llvm::codeview::consume ( BinaryStreamReader Reader,
StringRef Item 
)

Decodes a null terminated string.

Definition at line 144 of file RecordSerialization.cpp.

References corrupt_record, llvm::BinaryStreamReader::empty(), and llvm::BinaryStreamReader::readCString().

◆ consume() [6/15]

Error llvm::codeview::consume ( StringRef Data,
APSInt Num 
)

◆ consume() [7/15]

Error llvm::codeview::consume ( StringRef Data,
uint32_t Item 
)

◆ consume() [8/15]

template<typename T >
Error llvm::codeview::consume ( BinaryStreamReader Reader,
T *&  Item 
)

Decodes an arbitrary object whose layout matches that of the underlying byte sequence, and returns a pointer to the object.

Definition at line 67 of file RecordSerialization.h.

References llvm::BinaryStreamReader::readObject().

◆ consume() [9/15]

template<typename T , typename U >
Error llvm::codeview::consume ( BinaryStreamReader Reader,
const serialize_conditional_impl< T, U > &  Item 
)

◆ consume() [10/15]

template<typename T , typename U >
Error llvm::codeview::consume ( BinaryStreamReader Reader,
const serialize_array_impl< T, U > &  Item 
)

◆ consume() [11/15]

Error llvm::codeview::consume ( BinaryStreamReader Reader,
const serialize_null_term_string_array_impl Item 
)
inline

◆ consume() [12/15]

template<typename T >
Error llvm::codeview::consume ( BinaryStreamReader Reader,
const serialize_vector_tail_impl< T > &  Item 
)

◆ consume() [13/15]

template<typename T >
Error llvm::codeview::consume ( BinaryStreamReader Reader,
const serialize_arrayref_tail_impl< T > &  Item 
)

◆ consume() [14/15]

template<typename T >
Error llvm::codeview::consume ( BinaryStreamReader Reader,
const serialize_numeric_impl< T > &  Item 
)

◆ consume() [15/15]

template<typename T , typename U , typename... Args>
Error llvm::codeview::consume ( BinaryStreamReader Reader,
T &&  X,
U &&  Y,
Args &&...  Rest 
)

Definition at line 219 of file RecordSerialization.h.

References consume(), EC, X, and Y.

◆ consume_numeric()

Error llvm::codeview::consume_numeric ( BinaryStreamReader Reader,
uint64_t &  Value 
)

Decodes a numeric leaf value that is known to be a particular type.

Decode a numeric leaf value that is known to be a uint64_t.

Definition at line 115 of file RecordSerialization.cpp.

References consume(), corrupt_record, EC, llvm::APInt::getLimitedValue(), llvm::APInt::isIntN(), llvm::APSInt::isSigned(), N, and llvm::Error::success().

Referenced by consume(), and llvm::codeview::serialize_numeric_impl< T >::deserialize().

◆ CVErrorCategory()

const std::error_category & llvm::codeview::CVErrorCategory ( )

Definition at line 44 of file CodeViewError.cpp.

References CodeViewErrCategory, and llvm::codeview::CodeViewError::ID.

Referenced by make_error_code().

◆ decodeFramePtrReg()

RegisterId llvm::codeview::decodeFramePtrReg ( EncodedFramePtrReg  EncodedReg,
CPUType  CPU 
)

◆ discoverTypeIndices() [1/4]

void llvm::codeview::discoverTypeIndices ( ArrayRef< uint8_t >  RecordData,
SmallVectorImpl< TiReference > &  Refs 
)

◆ discoverTypeIndices() [2/4]

void llvm::codeview::discoverTypeIndices ( const CVType Type,
SmallVectorImpl< TiReference > &  Refs 
)

◆ discoverTypeIndices() [3/4]

void llvm::codeview::discoverTypeIndices ( const CVType Type,
SmallVectorImpl< TypeIndex > &  Indices 
)

◆ discoverTypeIndices() [4/4]

void llvm::codeview::discoverTypeIndices ( ArrayRef< uint8_t >  RecordData,
SmallVectorImpl< TypeIndex > &  Indices 
)

Definition at line 484 of file TypeIndexDiscovery.cpp.

References discoverTypeIndices(), and resolveTypeIndexReferences().

◆ discoverTypeIndicesInSymbol() [1/3]

bool llvm::codeview::discoverTypeIndicesInSymbol ( const CVSymbol Symbol,
SmallVectorImpl< TiReference > &  Refs 
)

Discover type indices in symbol records.

Returns false if this is an unknown record.

Definition at line 499 of file TypeIndexDiscovery.cpp.

References llvm::codeview::CVRecord< Kind >::content(), discoverTypeIndices(), and llvm::codeview::CVRecord< Kind >::kind().

Referenced by discoverTypeIndicesInSymbol().

◆ discoverTypeIndicesInSymbol() [2/3]

bool llvm::codeview::discoverTypeIndicesInSymbol ( ArrayRef< uint8_t >  RecordData,
SmallVectorImpl< TiReference > &  Refs 
)

◆ discoverTypeIndicesInSymbol() [3/3]

bool llvm::codeview::discoverTypeIndicesInSymbol ( ArrayRef< uint8_t >  RecordData,
SmallVectorImpl< TypeIndex > &  Indices 
)

◆ encodeFramePtrReg()

EncodedFramePtrReg llvm::codeview::encodeFramePtrReg ( RegisterId  Reg,
CPUType  CPU 
)

◆ fmt_guid() [1/2]

detail::GuidAdapter llvm::codeview::fmt_guid ( StringRef  Item)
inline

Definition at line 40 of file Formatters.h.

◆ fmt_guid() [2/2]

detail::GuidAdapter llvm::codeview::fmt_guid ( ArrayRef< uint8_t >  Item)
inline

Definition at line 44 of file Formatters.h.

◆ forEachCodeViewRecord()

template<typename Record , typename Func >
Error llvm::codeview::forEachCodeViewRecord ( ArrayRef< uint8_t >  StreamBuffer,
Func  F 
)

◆ getBytesAsCharacters()

StringRef llvm::codeview::getBytesAsCharacters ( ArrayRef< uint8_t >  LeafData)

Reinterpret a byte array as an array of characters.

Does not interpret as a C string, as StringRef has several helpers (split) that make that easy.

Definition at line 28 of file RecordSerialization.cpp.

References llvm::ArrayRef< T >::data(), and llvm::ArrayRef< T >::size().

Referenced by getBytesAsCString(), llvm::codeview::TypeDumpVisitor::visitMemberEnd(), and llvm::codeview::TypeDumpVisitor::visitTypeEnd().

◆ getBytesAsCString()

StringRef llvm::codeview::getBytesAsCString ( ArrayRef< uint8_t >  LeafData)

Definition at line 33 of file RecordSerialization.cpp.

References getBytesAsCharacters(), and llvm::StringRef::split().

◆ getCompileSym2FlagNames()

ArrayRef< EnumEntry< uint32_t > > llvm::codeview::getCompileSym2FlagNames ( )

Definition at line 327 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getCompileSym3FlagNames()

ArrayRef< EnumEntry< uint32_t > > llvm::codeview::getCompileSym3FlagNames ( )

Definition at line 331 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getCPUTypeNames()

ArrayRef< EnumEntry< unsigned > > llvm::codeview::getCPUTypeNames ( )

Definition at line 339 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getExportSymFlagNames()

ArrayRef< EnumEntry< uint16_t > > llvm::codeview::getExportSymFlagNames ( )

Definition at line 347 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getFileChecksumNames()

ArrayRef< EnumEntry< uint32_t > > llvm::codeview::getFileChecksumNames ( )

Definition at line 335 of file EnumTables.cpp.

References llvm::makeArrayRef().

◆ getFrameCookieKindNames()

ArrayRef< EnumEntry< uint8_t > > llvm::codeview::getFrameCookieKindNames ( )

Definition at line 319 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getFrameProcSymFlagNames()

ArrayRef< EnumEntry< uint32_t > > llvm::codeview::getFrameProcSymFlagNames ( )

Definition at line 343 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getImageSectionCharacteristicNames()

ArrayRef< EnumEntry< COFF::SectionCharacteristics > > llvm::codeview::getImageSectionCharacteristicNames ( )

Definition at line 364 of file EnumTables.cpp.

References ImageSectionCharacteristicNames, and llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getLocalFlagNames()

ArrayRef< EnumEntry< uint16_t > > llvm::codeview::getLocalFlagNames ( )

Definition at line 315 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getModifiedType()

TypeIndex llvm::codeview::getModifiedType ( const CVType CVT)

Given a CVType which is assumed to be an LF_MODIFIER, return the TypeIndex of the type that the LF_MODIFIER modifies.

Definition at line 48 of file TypeRecordHelpers.cpp.

References assert(), discoverTypeIndices(), and llvm::codeview::CVRecord< Kind >::kind().

Referenced by llvm::pdb::NativeEnumTypes::NativeEnumTypes().

◆ getModuleSubstreamKindNames()

ArrayRef< EnumEntry< uint32_t > > llvm::codeview::getModuleSubstreamKindNames ( )

Definition at line 351 of file EnumTables.cpp.

References llvm::makeArrayRef().

◆ getProcSymFlagNames()

ArrayRef< EnumEntry< uint8_t > > llvm::codeview::getProcSymFlagNames ( )

Definition at line 311 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getPublicSymFlagNames()

ArrayRef< EnumEntry< uint32_t > > llvm::codeview::getPublicSymFlagNames ( )

Definition at line 307 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getRegisterNames()

ArrayRef< EnumEntry< uint16_t > > llvm::codeview::getRegisterNames ( )

Definition at line 303 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getScopeEndOffset()

uint32_t llvm::codeview::getScopeEndOffset ( const CVSymbol Symbol)

Given a symbol P for which symbolOpensScope(P) == true, return the corresponding end offset.

Definition at line 24 of file SymbolRecordHelpers.cpp.

References assert(), llvm::codeview::ProcSym::End, llvm::codeview::Thunk32Sym::End, llvm::codeview::InlineSiteSym::End, llvm::codeview::BlockSym::End, llvm::codeview::CVRecord< Kind >::kind(), and symbolOpensScope().

Referenced by limitSymbolArrayToScope(), and symbolEndsScope().

◆ getScopeParentOffset()

uint32_t llvm::codeview::getScopeParentOffset ( const CVSymbol Symbol)

◆ getSourceLanguageNames()

ArrayRef< EnumEntry< SourceLanguage > > llvm::codeview::getSourceLanguageNames ( )

Definition at line 323 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getSymbolName()

StringRef llvm::codeview::getSymbolName ( CVSymbol  Sym)

◆ getSymbolTypeNames()

ArrayRef< EnumEntry< SymbolKind > > llvm::codeview::getSymbolTypeNames ( )

Definition at line 295 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName(), and getSymbolName().

◆ getThunkOrdinalNames()

ArrayRef< EnumEntry< uint8_t > > llvm::codeview::getThunkOrdinalNames ( )

Definition at line 355 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getTrampolineNames()

ArrayRef< EnumEntry< uint16_t > > llvm::codeview::getTrampolineNames ( )

Definition at line 359 of file EnumTables.cpp.

References llvm::makeArrayRef().

Referenced by getSymbolKindName().

◆ getTypeLeafNames()

ArrayRef< EnumEntry< TypeLeafKind > > llvm::codeview::getTypeLeafNames ( )

Definition at line 299 of file EnumTables.cpp.

References llvm::makeArrayRef().

◆ isUdtForwardRef()

bool llvm::codeview::isUdtForwardRef ( CVType  CVT)

Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION, or LF_ENUM with the forward ref class option.

Definition at line 28 of file TypeRecordHelpers.cpp.

References ForwardReference, llvm::codeview::CVRecord< Kind >::kind(), and None.

Referenced by llvm::pdb::TpiStream::findFullDeclForForwardRef(), llvm::pdb::SymbolCache::findSymbolByTypeIndex(), and llvm::pdb::NativeEnumTypes::NativeEnumTypes().

◆ limitSymbolArrayToScope()

CVSymbolArray llvm::codeview::limitSymbolArrayToScope ( const CVSymbolArray Symbols,
uint32_t  ScopeBegin 
)

◆ make_error_code()

std::error_code llvm::codeview::make_error_code ( cv_error_code  E)
inline

Definition at line 39 of file CodeViewError.h.

References CVErrorCategory().

◆ mergeIdRecords() [1/2]

Error llvm::codeview::mergeIdRecords ( MergingTypeTableBuilder Dest,
ArrayRef< TypeIndex Types,
SmallVectorImpl< TypeIndex > &  SourceToDest,
const CVTypeArray Ids 
)

Merge one set of id records into another.

This method assumes that all records are id records, and there are no Type records present. However, since Id records can refer back to Type records, this method assumes that the referenced type records have also been merged into another type stream (for example using the above method), and accepts the mapping from source to dest for that stream so that it can re-write the type record mappings accordingly.

Parameters
DestThe table to store the re-written id records into.
TypesThe mapping to use for the type records that these id records refer to.
SourceToDestA vector, indexed by the TypeIndex in the source id stream, that contains the index of the corresponding id record in the destination stream.
IdsThe collection of id records to merge in.
Returns
Error::success() if the operation succeeded, otherwise an appropriate error code.

Definition at line 436 of file TypeStreamMerger.cpp.

Referenced by isIdRecord(), and slotForIndex().

◆ mergeIdRecords() [2/2]

Error llvm::codeview::mergeIdRecords ( GlobalTypeTableBuilder Dest,
ArrayRef< TypeIndex Types,
SmallVectorImpl< TypeIndex > &  SourceToDest,
const CVTypeArray Ids,
ArrayRef< GloballyHashedType Hashes 
)

◆ mergeTypeAndIdRecords() [1/2]

Error llvm::codeview::mergeTypeAndIdRecords ( MergingTypeTableBuilder DestIds,
MergingTypeTableBuilder DestTypes,
SmallVectorImpl< TypeIndex > &  SourceToDest,
const CVTypeArray IdsAndTypes,
Optional< uint32_t > &  PCHSignature 
)

Merge a unified set of type and id records, splitting them into separate output streams.

Parameters
DestIdsThe table to store the re-written id records into.
DestTypesthe table to store the re-written type records into.
SourceToDestA vector, indexed by the TypeIndex in the source id stream, that contains the index of the corresponding id record in the destination stream.
IdsAndTypesThe collection of id records to merge in.
Returns
Error::success() if the operation succeeded, otherwise an appropriate error code.

Definition at line 444 of file TypeStreamMerger.cpp.

◆ mergeTypeAndIdRecords() [2/2]

Error llvm::codeview::mergeTypeAndIdRecords ( GlobalTypeTableBuilder DestIds,
GlobalTypeTableBuilder DestTypes,
SmallVectorImpl< TypeIndex > &  SourceToDest,
const CVTypeArray IdsAndTypes,
ArrayRef< GloballyHashedType Hashes,
Optional< uint32_t > &  PCHSignature 
)

Definition at line 452 of file TypeStreamMerger.cpp.

◆ mergeTypeRecords() [1/2]

Error llvm::codeview::mergeTypeRecords ( MergingTypeTableBuilder Dest,
SmallVectorImpl< TypeIndex > &  SourceToDest,
const CVTypeArray Types 
)

Merge one set of type records into another.

This method assumes that all records are type records, and there are no Id records present.

Parameters
DestThe table to store the re-written type records into.
SourceToDestA vector, indexed by the TypeIndex in the source type stream, that contains the index of the corresponding type record in the destination stream.
TypesThe collection of types to merge in.
Returns
Error::success() if the operation succeeded, otherwise an appropriate error code.

Definition at line 429 of file TypeStreamMerger.cpp.

Referenced by isIdRecord(), and slotForIndex().

◆ mergeTypeRecords() [2/2]

Error llvm::codeview::mergeTypeRecords ( GlobalTypeTableBuilder Dest,
SmallVectorImpl< TypeIndex > &  SourceToDest,
const CVTypeArray Types,
ArrayRef< GloballyHashedType Hashes,
Optional< uint32_t > &  PCHSignature 
)

Definition at line 461 of file TypeStreamMerger.cpp.

◆ operator!=() [1/2]

bool llvm::codeview::operator!= ( const FunctionId A,
const FunctionId B 
)
inline

Definition at line 34 of file FunctionId.h.

References llvm::codeview::FunctionId::getIndex().

◆ operator!=() [2/2]

bool llvm::codeview::operator!= ( const GUID LHS,
const GUID RHS 
)
inline

Definition at line 46 of file GUID.h.

References llvm::codeview::GUID::Guid, and operator<<().

◆ operator<() [1/2]

bool llvm::codeview::operator< ( const GUID LHS,
const GUID RHS 
)
inline

Definition at line 30 of file GUID.h.

References llvm::codeview::GUID::Guid, and memcmp.

◆ operator<() [2/2]

bool llvm::codeview::operator< ( const FunctionId A,
const FunctionId B 
)
inline

Definition at line 38 of file FunctionId.h.

References llvm::codeview::FunctionId::getIndex().

◆ operator<<()

raw_ostream & llvm::codeview::operator<< ( raw_ostream OS,
const GUID Guid 
)

Definition at line 44 of file Formatters.cpp.

References llvm::codeview::detail::GuidAdapter::format(), and llvm::codeview::GUID::Guid.

Referenced by operator!=().

◆ operator<=() [1/2]

bool llvm::codeview::operator<= ( const GUID LHS,
const GUID RHS 
)
inline

Definition at line 34 of file GUID.h.

References llvm::codeview::GUID::Guid, and memcmp.

◆ operator<=() [2/2]

bool llvm::codeview::operator<= ( const FunctionId A,
const FunctionId B 
)
inline

Definition at line 42 of file FunctionId.h.

References llvm::codeview::FunctionId::getIndex().

◆ operator==() [1/2]

bool llvm::codeview::operator== ( const GUID LHS,
const GUID RHS 
)
inline

Definition at line 26 of file GUID.h.

References llvm::codeview::GUID::Guid, and memcmp.

◆ operator==() [2/2]

bool llvm::codeview::operator== ( const FunctionId A,
const FunctionId B 
)
inline

Definition at line 30 of file FunctionId.h.

References llvm::codeview::FunctionId::getIndex().

◆ operator>() [1/2]

bool llvm::codeview::operator> ( const GUID LHS,
const GUID RHS 
)
inline

Definition at line 38 of file GUID.h.

◆ operator>() [2/2]

bool llvm::codeview::operator> ( const FunctionId A,
const FunctionId B 
)
inline

Definition at line 46 of file FunctionId.h.

References llvm::codeview::FunctionId::getIndex().

◆ operator>=() [1/2]

bool llvm::codeview::operator>= ( const GUID LHS,
const GUID RHS 
)
inline

Definition at line 42 of file GUID.h.

◆ operator>=() [2/2]

bool llvm::codeview::operator>= ( const FunctionId A,
const FunctionId B 
)
inline

Definition at line 50 of file FunctionId.h.

References llvm::codeview::FunctionId::getIndex().

◆ printTypeIndex()

void llvm::codeview::printTypeIndex ( ScopedPrinter Printer,
StringRef  FieldName,
TypeIndex  TI,
TypeCollection Types 
)

◆ readCVRecordFromStream()

template<typename Kind >
Expected<CVRecord<Kind> > llvm::codeview::readCVRecordFromStream ( BinaryStreamRef  Stream,
uint32_t  Offset 
)
inline

◆ readSymbolFromStream()

Expected< CVSymbol > llvm::codeview::readSymbolFromStream ( BinaryStreamRef  Stream,
uint32_t  Offset 
)

Definition at line 152 of file RecordSerialization.cpp.

◆ serialize_array()

template<typename T , typename U >
serialize_array_impl<T, U> llvm::codeview::serialize_array ( ArrayRef< T > &  Item,
Func 
)

Definition at line 160 of file RecordSerialization.h.

◆ serialize_array_tail() [1/2]

template<typename T >
serialize_vector_tail_impl<T> llvm::codeview::serialize_array_tail ( std::vector< T > &  Item)

Definition at line 170 of file RecordSerialization.h.

◆ serialize_array_tail() [2/2]

template<typename T >
serialize_arrayref_tail_impl<T> llvm::codeview::serialize_array_tail ( ArrayRef< T > &  Item)

Definition at line 175 of file RecordSerialization.h.

◆ serialize_conditional()

template<typename T , typename U >
serialize_conditional_impl<T, U> llvm::codeview::serialize_conditional ( T Item,
Func 
)

Definition at line 85 of file RecordSerialization.h.

◆ serialize_null_term_string_array()

serialize_null_term_string_array_impl llvm::codeview::serialize_null_term_string_array ( std::vector< StringRef > &  Item)
inline

Definition at line 165 of file RecordSerialization.h.

◆ serialize_numeric()

template<typename T >
serialize_numeric_impl<T> llvm::codeview::serialize_numeric ( T Item)

Definition at line 179 of file RecordSerialization.h.

◆ symbolEndsScope()

bool llvm::codeview::symbolEndsScope ( SymbolKind  Kind)
inline

Return true if this ssymbol ends a scope.

Definition at line 39 of file SymbolRecordHelpers.h.

References getScopeEndOffset(), getScopeParentOffset(), limitSymbolArrayToScope(), llvm::ARMBuildAttrs::Symbol, and Symbols.

◆ symbolOpensScope()

bool llvm::codeview::symbolOpensScope ( SymbolKind  Kind)
inline

Return true if this symbol opens a scope.

This implies that the symbol has "parent" and "end" fields, which contain the offset of the S_END or S_INLINESITE_END record.

Definition at line 20 of file SymbolRecordHelpers.h.

Referenced by getScopeEndOffset(), getScopeParentOffset(), and limitSymbolArrayToScope().

◆ visitDebugSubsection()

Error llvm::codeview::visitDebugSubsection ( const DebugSubsectionRecord R,
DebugSubsectionVisitor V,
const StringsAndChecksumsRef State 
)

Definition at line 29 of file DebugSubsectionVisitor.cpp.

References CoffSymbolRVA, CrossScopeExports, CrossScopeImports, EC, FileChecksums, FrameData, llvm::codeview::DebugSubsectionRecord::getRecordData(), llvm::codeview::DebugSymbolsSubsectionRef::initialize(), llvm::codeview::DebugFrameDataSubsectionRef::initialize(), llvm::codeview::DebugCrossModuleExportsSubsectionRef::initialize(), llvm::codeview::DebugStringTableSubsectionRef::initialize(), llvm::codeview::DebugSymbolRVASubsectionRef::initialize(), llvm::codeview::DebugCrossModuleImportsSubsectionRef::initialize(), llvm::codeview::DebugChecksumsSubsectionRef::initialize(), llvm::codeview::DebugInlineeLinesSubsectionRef::initialize(), llvm::codeview::DebugLinesSubsectionRef::initialize(), InlineeLines, llvm::codeview::DebugSubsectionRecord::kind(), Lines, llvm::ARMBuildAttrs::Section, StringTable, Symbols, llvm::codeview::DebugSubsectionVisitor::visitCOFFSymbolRVAs(), llvm::codeview::DebugSubsectionVisitor::visitCrossModuleExports(), llvm::codeview::DebugSubsectionVisitor::visitCrossModuleImports(), llvm::codeview::DebugSubsectionVisitor::visitFileChecksums(), llvm::codeview::DebugSubsectionVisitor::visitFrameData(), llvm::codeview::DebugSubsectionVisitor::visitInlineeLines(), llvm::codeview::DebugSubsectionVisitor::visitLines(), llvm::codeview::DebugSubsectionVisitor::visitStringTable(), llvm::codeview::DebugSubsectionVisitor::visitSymbols(), and llvm::codeview::DebugSubsectionVisitor::visitUnknown().

Referenced by llvm::CodeViewYAML::YAMLDebugSubsection::fromCodeViewSubection(), llvm::codeview::detail::visitDebugSubsections(), and llvm::codeview::DebugSubsectionVisitor::visitUnknown().

◆ visitDebugSubsections() [1/3]

template<typename T >
Error llvm::codeview::visitDebugSubsections ( T &&  FragmentRange,
DebugSubsectionVisitor V 
)

◆ visitDebugSubsections() [2/3]

template<typename T >
Error llvm::codeview::visitDebugSubsections ( T &&  FragmentRange,
DebugSubsectionVisitor V,
const DebugStringTableSubsectionRef Strings 
)

◆ visitDebugSubsections() [3/3]

template<typename T >
Error llvm::codeview::visitDebugSubsections ( T &&  FragmentRange,
DebugSubsectionVisitor V,
const DebugStringTableSubsectionRef Strings,
const DebugChecksumsSubsectionRef Checksums 
)

◆ visitMemberRecord() [1/2]

Error llvm::codeview::visitMemberRecord ( CVMemberRecord  Record,
TypeVisitorCallbacks Callbacks,
VisitorDataSource  Source = VDS_BytesPresent 
)

Definition at line 255 of file CVTypeVisitor.cpp.

References llvm::codeview::CVMemberRecord::Data.

Referenced by visitMemberRecord(), and visitMemberRecord().

◆ visitMemberRecord() [2/2]

Error llvm::codeview::visitMemberRecord ( TypeLeafKind  Kind,
ArrayRef< uint8_t >  Record,
TypeVisitorCallbacks Callbacks 
)

◆ visitMemberRecordStream()

Error llvm::codeview::visitMemberRecordStream ( ArrayRef< uint8_t >  FieldList,
TypeVisitorCallbacks Callbacks 
)

Definition at line 271 of file CVTypeVisitor.cpp.

References VDS_BytesPresent.

Referenced by llvm::codeview::TypeDumpVisitor::visitMemberEnd().

◆ visitTypeRecord() [1/2]

Error llvm::codeview::visitTypeRecord ( CVType Record,
TypeIndex  Index,
TypeVisitorCallbacks Callbacks,
VisitorDataSource  Source = VDS_BytesPresent 
)

◆ visitTypeRecord() [2/2]

Error llvm::codeview::visitTypeRecord ( CVType Record,
TypeVisitorCallbacks Callbacks,
VisitorDataSource  Source = VDS_BytesPresent 
)

Definition at line 226 of file CVTypeVisitor.cpp.

◆ visitTypeStream() [1/3]

Error llvm::codeview::visitTypeStream ( const CVTypeArray Types,
TypeVisitorCallbacks Callbacks,
VisitorDataSource  Source = VDS_BytesPresent 
)

Definition at line 233 of file CVTypeVisitor.cpp.

Referenced by visitMemberRecord().

◆ visitTypeStream() [2/3]

Error llvm::codeview::visitTypeStream ( CVTypeRange  Types,
TypeVisitorCallbacks Callbacks 
)

Definition at line 240 of file CVTypeVisitor.cpp.

References VDS_BytesPresent.

◆ visitTypeStream() [3/3]

Error llvm::codeview::visitTypeStream ( TypeCollection Types,
TypeVisitorCallbacks Callbacks 
)

Definition at line 246 of file CVTypeVisitor.cpp.

References VDS_BytesPresent.