LLVM 22.0.0git
llvm::codeview Namespace Reference

Namespaces

namespace  detail

Classes

class  AnnotationSym
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  CodeViewRecordStreamer
class  CoffGroupSym
class  ColumnInfo
struct  ColumnNumberEntry
class  Compile2Sym
class  Compile3Sym
class  ConstantSym
class  ContinuationRecordBuilder
struct  CPURegister
struct  CrossModuleExport
struct  CrossModuleImport
struct  CrossModuleImportItem
struct  CVMemberRecord
class  CVRecord
 CVRecord is a fat pointer (base + size pair) to a symbol or type record. More...
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
struct  DecodedAnnotation
class  DefRangeFramePointerRelFullScopeSym
struct  DefRangeFramePointerRelHeader
class  DefRangeFramePointerRelSym
struct  DefRangeRegisterHeader
struct  DefRangeRegisterRelHeader
class  DefRangeRegisterRelSym
class  DefRangeRegisterSym
struct  DefRangeSubfieldRegisterHeader
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
class  HotPatchFuncSym
struct  InlineeSourceLine
struct  InlineeSourceLineHeader
class  InlineSiteSym
class  JumpTableSym
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  PCHMergerInfo
 Used to forward information about PCH.OBJ (precompiled) files, when applicable. More...
struct  PDB20DebugInfo
struct  PDB70DebugInfo
class  PointerRecord
class  PrecompRecord
class  ProcedureRecord
class  ProcRefSym
class  ProcSym
class  PublicSym32
struct  PublicSym32Header
struct  RecordPrefix
class  RegisterSym
class  RegRelativeSym
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 CVType = CVRecord<TypeLeafKind>
using CVSymbol = CVRecord<SymbolKind>
using CVSymbolArray = VarStreamArray<CVSymbol>
using CVTypeArray = VarStreamArray<CVType>
using CVTypeRange = iterator_range<CVTypeArray::Iterator>
using DebugSubsectionArray = VarStreamArray<DebugSubsectionRecord>
using ulittle32_t
using little32_t
using ulittle16_t
using ulittle32_t
using little32_t
using ulittle16_t
using ulittle32_t

Enumerations

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

Functions

LLVM_ABI RegisterId decodeFramePtrReg (EncodedFramePtrReg EncodedReg, CPUType CPU)
LLVM_ABI EncodedFramePtrReg encodeFramePtrReg (RegisterId Reg, CPUType CPU)
uint32_t alignOf (CodeViewContainer Container)
LLVM_ABI const std::error_category & CVErrorCategory ()
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.
LLVM_ABI Error visitTypeRecord (CVType &Record, TypeIndex Index, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
LLVM_ABI Error visitTypeRecord (CVType &Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
LLVM_ABI Error visitMemberRecord (CVMemberRecord Record, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
LLVM_ABI Error visitMemberRecord (TypeLeafKind Kind, ArrayRef< uint8_t > Record, TypeVisitorCallbacks &Callbacks)
LLVM_ABI Error visitMemberRecordStream (ArrayRef< uint8_t > FieldList, TypeVisitorCallbacks &Callbacks)
LLVM_ABI Error visitTypeStream (const CVTypeArray &Types, TypeVisitorCallbacks &Callbacks, VisitorDataSource Source=VDS_BytesPresent)
LLVM_ABI Error visitTypeStream (CVTypeRange Types, TypeVisitorCallbacks &Callbacks)
LLVM_ABI 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)
LLVM_ABI ArrayRef< EnumEntry< SymbolKind > > getSymbolTypeNames ()
LLVM_ABI ArrayRef< EnumEntry< TypeLeafKind > > getTypeLeafNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getRegisterNames (CPUType Cpu)
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getPublicSymFlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getProcSymFlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getLocalFlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getFrameCookieKindNames ()
LLVM_ABI ArrayRef< EnumEntry< SourceLanguage > > getSourceLanguageNames ()
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getCompileSym2FlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getCompileSym3FlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getFileChecksumNames ()
LLVM_ABI ArrayRef< EnumEntry< unsigned > > getCPUTypeNames ()
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getFrameProcSymFlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getExportSymFlagNames ()
LLVM_ABI ArrayRef< EnumEntry< uint32_t > > getModuleSubstreamKindNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getThunkOrdinalNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getTrampolineNames ()
LLVM_ABI ArrayRef< EnumEntry< COFF::SectionCharacteristics > > getImageSectionCharacteristicNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getClassOptionNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getMemberAccessNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getMethodOptionNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getMemberKindNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getPtrKindNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getPtrModeNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getPtrMemberRepNames ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getTypeModifierNames ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getCallingConventions ()
LLVM_ABI ArrayRef< EnumEntry< uint8_t > > getFunctionOptionEnum ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getLabelTypeEnum ()
LLVM_ABI ArrayRef< EnumEntry< uint16_t > > getJumpTableEntrySizeNames ()
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)
LLVM_ABI raw_ostreamoperator<< (raw_ostream &OS, const GUID &Guid)
LLVM_ABI std::string computeTypeName (TypeCollection &Types, TypeIndex Index)
LLVM_ABI StringRef getSymbolName (CVSymbol Sym)
LLVM_ABI StringRef getBytesAsCharacters (ArrayRef< uint8_t > LeafData)
 Reinterpret a byte array as an array of characters.
LLVM_ABI StringRef getBytesAsCString (ArrayRef< uint8_t > LeafData)
Error consume (BinaryStreamReader &Reader)
LLVM_ABI Error consume (BinaryStreamReader &Reader, APSInt &Num)
 Decodes a numeric "leaf" value.
LLVM_ABI Error consume_numeric (BinaryStreamReader &Reader, uint64_t &Value)
 Decodes a numeric leaf value that is known to be a particular type.
LLVM_ABI Error consume (BinaryStreamReader &Reader, uint32_t &Item)
 Decodes signed and unsigned fixed-length integers.
LLVM_ABI Error consume (BinaryStreamReader &Reader, int32_t &Item)
LLVM_ABI Error consume (BinaryStreamReader &Reader, StringRef &Item)
 Decodes a null terminated string.
LLVM_ABI Error consume (StringRef &Data, APSInt &Num)
LLVM_ABI 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.
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)
LLVM_ABI Expected< CVSymbolreadSymbolFromStream (BinaryStreamRef Stream, uint32_t Offset)
bool symbolOpensScope (SymbolKind Kind)
 Return true if this symbol opens a scope.
bool symbolEndsScope (SymbolKind Kind)
 Return true if this ssymbol ends a scope.
LLVM_ABI uint32_t getScopeEndOffset (const CVSymbol &Symbol)
 Given a symbol P for which symbolOpensScope(P) == true, return the corresponding end offset.
LLVM_ABI uint32_t getScopeParentOffset (const CVSymbol &Symbol)
LLVM_ABI CVSymbolArray limitSymbolArrayToScope (const CVSymbolArray &Symbols, uint32_t ScopeBegin)
LLVM_ABI void printTypeIndex (ScopedPrinter &Printer, StringRef FieldName, TypeIndex TI, TypeCollection &Types)
LLVM_ABI void discoverTypeIndices (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TiReference > &Refs)
LLVM_ABI void discoverTypeIndices (const CVType &Type, SmallVectorImpl< TiReference > &Refs)
LLVM_ABI void discoverTypeIndices (const CVType &Type, SmallVectorImpl< TypeIndex > &Indices)
LLVM_ABI void discoverTypeIndices (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TypeIndex > &Indices)
LLVM_ABI bool discoverTypeIndicesInSymbol (const CVSymbol &Symbol, SmallVectorImpl< TiReference > &Refs)
 Discover type indices in symbol records.
LLVM_ABI bool discoverTypeIndicesInSymbol (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TiReference > &Refs)
LLVM_ABI bool discoverTypeIndicesInSymbol (ArrayRef< uint8_t > RecordData, SmallVectorImpl< TypeIndex > &Indices)
LLVM_ABI 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.
LLVM_ABI 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.
bool isIdRecord (TypeLeafKind K)
 Return true if this record should be in the IPI stream of a PDB.
bool isAggregate (CVType CVT)
 Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION.
LLVM_ABI uint64_t getSizeInBytesForTypeIndex (TypeIndex TI)
 Given an arbitrary codeview type index, determine its size.
LLVM_ABI uint64_t getSizeInBytesForTypeRecord (CVType CVT)
 Given an arbitrary codeview type, return the type's size in the case of aggregate (LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION).
LLVM_ABI Error mergeTypeRecords (MergingTypeTableBuilder &Dest, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Types)
 Merge one set of type records into another.
LLVM_ABI Error mergeIdRecords (MergingTypeTableBuilder &Dest, ArrayRef< TypeIndex > Types, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Ids)
 Merge one set of id records into another.
LLVM_ABI Error mergeTypeAndIdRecords (MergingTypeTableBuilder &DestIds, MergingTypeTableBuilder &DestTypes, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &IdsAndTypes, std::optional< PCHMergerInfo > &PCHInfo)
 Merge a unified set of type and id records, splitting them into separate output streams.
LLVM_ABI Error mergeTypeAndIdRecords (GlobalTypeTableBuilder &DestIds, GlobalTypeTableBuilder &DestTypes, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &IdsAndTypes, ArrayRef< GloballyHashedType > Hashes, std::optional< PCHMergerInfo > &PCHInfo)
LLVM_ABI Error mergeTypeRecords (GlobalTypeTableBuilder &Dest, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Types, ArrayRef< GloballyHashedType > Hashes, std::optional< PCHMergerInfo > &PCHInfo)
LLVM_ABI Error mergeIdRecords (GlobalTypeTableBuilder &Dest, ArrayRef< TypeIndex > Types, SmallVectorImpl< TypeIndex > &SourceToDest, const CVTypeArray &Ids, ArrayRef< GloballyHashedType > Hashes)

Typedef Documentation

◆ CVSymbol

Definition at line 65 of file CVRecord.h.

◆ CVSymbolArray

Definition at line 126 of file CVRecord.h.

◆ CVType

Definition at line 64 of file CVRecord.h.

◆ CVTypeArray

Definition at line 127 of file CVRecord.h.

◆ CVTypeRange

◆ DebugSubsectionArray

◆ little32_t [1/2]

Definition at line 296 of file Endian.h.

◆ little32_t [2/2]

Definition at line 296 of file Endian.h.

◆ ulittle16_t [1/2]

Definition at line 283 of file Endian.h.

◆ ulittle16_t [2/2]

Definition at line 283 of file Endian.h.

◆ ulittle32_t [1/3]

Definition at line 286 of file Endian.h.

◆ ulittle32_t [2/3]

Definition at line 286 of file Endian.h.

◆ ulittle32_t [3/3]

Definition at line 286 of file Endian.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum : uint32_t
Enumerator
SubsectionIgnoreFlag 

Definition at line 293 of file CodeView.h.

◆ anonymous enum

anonymous enum : uint16_t
Enumerator
MaxDefRange 

Definition at line 466 of file SymbolRecord.h.

◆ 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 31 of file RecordSerialization.h.

◆ BinaryAnnotationsOpCode

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

Definition at line 476 of file CodeView.h.

◆ CallingConvention

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 
Swift 

Definition at line 157 of file CodeView.h.

◆ ClassOptions

Enumerator
None 
Packed 
HasConstructorOrDestructor 
HasOverloadedOperator 
Nested 
ContainsNestedClass 
HasOverloadedAssignmentOperator 
HasConversionOperator 
ForwardReference 
Scoped 
HasUniqueName 
Sealed 
Intrinsic 

Definition at line 186 of file CodeView.h.

◆ CodeViewContainer

Enumerator
ObjectFile 
Pdb 

Definition at line 593 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 430 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 446 of file CodeView.h.

◆ ContinuationRecordKind

Enumerator
FieldList 
MethodOverloadList 

Definition at line 25 of file ContinuationRecordBuilder.h.

◆ CPUType

enum class 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 
Omni 
Ia64 
Ia64_2 
CEE 
AM33 
M32R 
TriCore 
X64 
EBC 
Thumb 
ARMNT 
ARM64 
HybridX86ARM64 
ARM64EC 
ARM64X 
Unknown 
D3D11_Shader 

Definition at line 77 of file CodeView.h.

◆ cv_error_code

enum class llvm::codeview::cv_error_code
strong
Enumerator
unspecified 
insufficient_buffer 
operation_unsupported 
corrupt_record 
no_records 
unknown_member_record 

Definition at line 17 of file CodeViewError.h.

◆ DebugSubsectionKind

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

Definition at line 295 of file CodeView.h.

◆ EncodedFramePtrReg

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 524 of file CodeView.h.

◆ ExportFlags

Enumerator
None 
IsConstant 
IsData 
IsPrivate 
HasNoName 
HasExplicitOrdinal 
IsForwarder 

Definition at line 464 of file CodeView.h.

◆ FileChecksumKind

Enumerator
None 
MD5 
SHA1 
SHA256 

Definition at line 550 of file CodeView.h.

◆ FrameCookieKind

Enumerator
Copy 
XorStackPointer 
XorFramePointer 
XorR13 

Definition at line 494 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 203 of file CodeView.h.

◆ FunctionOptions

Enumerator
None 
CxxReturnUdt 
Constructor 
ConstructorWithVirtualBases 

Definition at line 229 of file CodeView.h.

◆ GlobalTypeHashAlg

Enumerator
SHA1 
SHA1_8 
BLAKE3 

Definition at line 63 of file TypeHashing.h.

◆ HfaKind

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

Definition at line 237 of file CodeView.h.

◆ InlineeLinesSignature

Enumerator
Normal 
ExtraFiles 

Definition at line 31 of file DebugInlineeLinesSubsection.h.

◆ JumpTableEntrySize

Enumerator
Int8 
UInt8 
Int16 
UInt16 
Int32 
UInt32 
Pointer 
UInt8ShiftLeft 
UInt16ShiftLeft 
Int8ShiftLeft 
Int16ShiftLeft 

Definition at line 610 of file CodeView.h.

◆ LabelType

enum class llvm::codeview::LabelType : uint16_t
strong

Equivalent to CV_LABEL_TYPE_e.

Enumerator
Near 
Far 

Definition at line 277 of file CodeView.h.

◆ LineFlags

Enumerator
LF_None 
LF_HaveColumns 

Definition at line 552 of file CodeView.h.

◆ LocalSymFlags

Corresponds to CV_LVARFLAGS bitfield.

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

Definition at line 389 of file CodeView.h.

◆ MemberAccess

Source-level access specifier. (CV_access_e)

Enumerator
None 
Private 
Protected 
Public 

Definition at line 245 of file CodeView.h.

◆ MethodKind

enum class 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 253 of file CodeView.h.

◆ MethodOptions

Equivalent to CV_fldattr_t bitfield.

Enumerator
None 
AccessMask 
MethodKindMask 
Pseudo 
NoInherit 
NoConstruct 
CompilerGenerated 
Sealed 

Definition at line 264 of file CodeView.h.

◆ ModifierOptions

Equivalent to CV_modifier_t.

TODO: Add flag for _Atomic modifier

Enumerator
None 
Const 
Volatile 
Unaligned 

Definition at line 284 of file CodeView.h.

◆ PointerKind

enum class 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 319 of file CodeView.h.

◆ PointerMode

enum class llvm::codeview::PointerMode : uint8_t
strong

Equivalent to CV_ptrmode_e.

Enumerator
Pointer 
LValueReference 
PointerToDataMember 
PointerToMemberFunction 
RValueReference 

Definition at line 336 of file CodeView.h.

◆ PointerOptions

Equivalent to misc lfPointerAttr bitfields.

Enumerator
None 
Flat32 
Volatile 
Const 
Unaligned 
Restrict 
WinRTSmartPointer 
LValueRefThisPointer 
RValueRefThisPointer 

Definition at line 345 of file CodeView.h.

◆ PointerToMemberRepresentation

Equivalent to CV_pmtype_e.

Enumerator
Unknown 
SingleInheritanceData 
MultipleInheritanceData 
VirtualInheritanceData 
GeneralData 
SingleInheritanceFunction 
MultipleInheritanceFunction 
VirtualInheritanceFunction 
GeneralFunction 

Definition at line 359 of file CodeView.h.

◆ ProcSymFlags

Corresponds to the CV_PROCFLAGS bitfield.

Enumerator
None 
HasFP 
HasIRET 
HasFRET 
IsNoReturn 
IsUnreachable 
HasCustomCallingConv 
IsNoInline 
HasOptimizedDebugInfo 

Definition at line 416 of file CodeView.h.

◆ PublicSymFlags

Corresponds to the CV_PUBSYMFLAGS bitfield.

Enumerator
None 
Code 
Function 
Managed 
MSIL 

Definition at line 406 of file CodeView.h.

◆ RegisterId

enum class llvm::codeview::RegisterId : uint16_t
strong

Definition at line 502 of file CodeView.h.

◆ SimpleTypeKind

Enumerator
None 
Void 
NotTranslated 
HResult 
SignedCharacter 
UnsignedCharacter 
NarrowCharacter 
WideCharacter 
Character16 
Character32 
Character8 
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 83 of file TypeIndex.h.

◆ SourceLanguage

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.

Definition at line 147 of file CodeView.h.

◆ SymbolKind

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

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

Definition at line 49 of file CodeView.h.

◆ SymbolRecordKind

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

Equivalent to SYM_ENUM_e in cvinfo.h.

Definition at line 42 of file CodeView.h.

◆ ThunkOrdinal

These values correspond to the THUNK_ORDINAL enumeration.

Enumerator
Standard 
ThisAdjustor 
Vcall 
Pcode 
UnknownLoad 
TrampIncremental 
BranchIsland 

Definition at line 537 of file CodeView.h.

◆ TiRefKind

enum class llvm::codeview::TiRefKind
strong
Enumerator
TypeRef 
IndexRef 

Definition at line 20 of file TypeIndexDiscovery.h.

◆ TrampolineType

Enumerator
TrampIncremental 
BranchIsland 

Definition at line 547 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
MEMBER_RECORD_ALIAS 
MEMBER_RECORD_ALIAS 

Definition at line 35 of file CodeView.h.

◆ TypeRecordKind

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
MEMBER_RECORD_ALIAS 

Definition at line 28 of file CodeView.h.

◆ VFTableSlotKind

Enumerator
Near16 
Far16 
This 
Outer 
Meta 
Near 
Far 

Definition at line 371 of file CodeView.h.

◆ VisitorDataSource

Enumerator
VDS_BytesPresent 
VDS_BytesExternal 

Definition at line 25 of file CVTypeVisitor.h.

◆ WindowsRTClassKind

Enumerator
None 
RefClass 
ValueClass 
Interface 

Definition at line 381 of file CodeView.h.

Function Documentation

◆ alignOf()

◆ computeTypeName()

◆ consume() [1/15]

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

Definition at line 46 of file RecordSerialization.h.

References llvm::Error::success().

◆ 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 36 of file RecordSerialization.cpp.

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

◆ consume() [3/15]

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

◆ consume() [4/15]

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

◆ consume() [5/15]

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

◆ consume() [6/15]

◆ consume() [7/15]

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

◆ consume() [8/15]

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

◆ consume() [9/15]

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

Definition at line 139 of file RecordSerialization.cpp.

References llvm::BinaryStreamReader::readInteger().

◆ consume() [10/15]

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

Decodes a null terminated string.

Definition at line 143 of file RecordSerialization.cpp.

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

◆ consume() [11/15]

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

Definition at line 221 of file RecordSerialization.h.

References llvm::consume, EC, T, X, and Y.

◆ consume() [12/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 69 of file RecordSerialization.h.

References llvm::BinaryStreamReader::readObject(), and T.

◆ consume() [13/15]

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

Decodes signed and unsigned fixed-length integers.

Definition at line 126 of file RecordSerialization.cpp.

References llvm::BinaryStreamReader::readInteger().

◆ consume() [14/15]

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

◆ consume() [15/15]

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

◆ 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 114 of file RecordSerialization.cpp.

References llvm::consume, corrupt_record, EC, llvm::make_error(), N, and llvm::Error::success().

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

◆ CVErrorCategory()

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

Definition at line 44 of file CodeViewError.cpp.

Referenced by make_error_code().

◆ decodeFramePtrReg()

◆ discoverTypeIndices() [1/4]

◆ discoverTypeIndices() [2/4]

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

Definition at line 487 of file TypeIndexDiscovery.cpp.

References discoverTypeIndices(), and resolveTypeIndexReferences().

◆ discoverTypeIndices() [3/4]

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

Definition at line 458 of file TypeIndexDiscovery.cpp.

References discoverTypeIndices().

◆ discoverTypeIndices() [4/4]

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

Definition at line 482 of file TypeIndexDiscovery.cpp.

References discoverTypeIndices().

◆ discoverTypeIndicesInSymbol() [1/3]

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

◆ discoverTypeIndicesInSymbol() [2/3]

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

◆ discoverTypeIndicesInSymbol() [3/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 502 of file TypeIndexDiscovery.cpp.

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

Referenced by discoverTypeIndicesInSymbol().

◆ encodeFramePtrReg()

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

◆ fmt_guid() [1/2]

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

Definition at line 46 of file Formatters.h.

◆ fmt_guid() [2/2]

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

Definition at line 42 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 27 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 32 of file RecordSerialization.cpp.

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

◆ getCallingConventions()

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

Definition at line 568 of file EnumTables.cpp.

References llvm::ArrayRef(), and CallingConventions.

◆ getClassOptionNames()

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

Definition at line 536 of file EnumTables.cpp.

References llvm::ArrayRef(), and ClassOptionNames.

◆ getCompileSym2FlagNames()

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

Definition at line 495 of file EnumTables.cpp.

References llvm::ArrayRef(), and CompileSym2FlagNames.

◆ getCompileSym3FlagNames()

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

◆ getCPUTypeNames()

◆ getExportSymFlagNames()

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

Definition at line 515 of file EnumTables.cpp.

References llvm::ArrayRef(), and ExportSymFlagNames.

◆ getFileChecksumNames()

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

Definition at line 503 of file EnumTables.cpp.

References llvm::ArrayRef(), and FileChecksumNames.

◆ getFrameCookieKindNames()

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

Definition at line 487 of file EnumTables.cpp.

References llvm::ArrayRef(), and FrameCookieKinds.

◆ getFrameProcSymFlagNames()

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

Definition at line 511 of file EnumTables.cpp.

References llvm::ArrayRef(), and FrameProcSymFlagNames.

◆ getFunctionOptionEnum()

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

Definition at line 572 of file EnumTables.cpp.

References llvm::ArrayRef(), and FunctionOptionEnum.

◆ getImageSectionCharacteristicNames()

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

Definition at line 532 of file EnumTables.cpp.

References llvm::ArrayRef(), and ImageSectionCharacteristicNames.

◆ getJumpTableEntrySizeNames()

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

◆ getLabelTypeEnum()

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

Definition at line 576 of file EnumTables.cpp.

References llvm::ArrayRef(), and LabelTypeEnum.

◆ getLocalFlagNames()

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

Definition at line 483 of file EnumTables.cpp.

References llvm::ArrayRef(), and LocalFlags.

Referenced by llvm::logicalview::LVSymbolVisitor::visitKnownRecord().

◆ getMemberAccessNames()

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

Definition at line 540 of file EnumTables.cpp.

References llvm::ArrayRef(), and MemberAccessNames.

◆ getMemberKindNames()

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

Definition at line 548 of file EnumTables.cpp.

References llvm::ArrayRef(), and MemberKindNames.

◆ getMethodOptionNames()

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

Definition at line 544 of file EnumTables.cpp.

References llvm::ArrayRef(), and MethodOptionNames.

◆ 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 47 of file TypeRecordHelpers.cpp.

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

Referenced by llvm::pdb::NativeEnumTypes::NativeEnumTypes(), and llvm::logicalview::LVLogicalVisitor::visitKnownRecord().

◆ getModuleSubstreamKindNames()

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

Definition at line 519 of file EnumTables.cpp.

References llvm::ArrayRef(), and ModuleSubstreamKindNames.

◆ getProcSymFlagNames()

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

◆ getPtrKindNames()

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

Definition at line 552 of file EnumTables.cpp.

References llvm::ArrayRef(), and PtrKindNames.

◆ getPtrMemberRepNames()

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

Definition at line 560 of file EnumTables.cpp.

References llvm::ArrayRef(), and PtrMemberRepNames.

◆ getPtrModeNames()

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

Definition at line 556 of file EnumTables.cpp.

References llvm::ArrayRef(), and PtrModeNames.

◆ getPublicSymFlagNames()

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

Definition at line 475 of file EnumTables.cpp.

References llvm::ArrayRef(), and PublicSymFlagNames.

◆ getRegisterNames()

◆ getScopeEndOffset()

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

◆ getScopeParentOffset()

◆ getSizeInBytesForTypeIndex()

◆ getSizeInBytesForTypeRecord()

uint64_t llvm::codeview::getSizeInBytesForTypeRecord ( CVType CVT)

Given an arbitrary codeview type, return the type's size in the case of aggregate (LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION).

Definition at line 171 of file TypeRecordHelpers.cpp.

References getUdtSize(), llvm::codeview::CVRecord< Kind >::kind(), and llvm::codeview::CVRecord< Kind >::length().

Referenced by llvm::logicalview::LVLogicalVisitor::visitKnownRecord().

◆ getSourceLanguageNames()

◆ getSymbolName()

◆ getSymbolTypeNames()

◆ getThunkOrdinalNames()

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

Definition at line 523 of file EnumTables.cpp.

References llvm::ArrayRef(), and ThunkOrdinalNames.

◆ getTrampolineNames()

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

Definition at line 527 of file EnumTables.cpp.

References llvm::ArrayRef(), and TrampolineNames.

◆ getTypeLeafNames()

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

Definition at line 462 of file EnumTables.cpp.

References llvm::ArrayRef(), and TypeLeafNames.

◆ getTypeModifierNames()

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

Definition at line 564 of file EnumTables.cpp.

References llvm::ArrayRef(), and TypeModifierNames.

◆ isAggregate()

bool llvm::codeview::isAggregate ( CVType CVT)
inline

Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION.

Definition at line 47 of file TypeRecordHelpers.h.

References llvm::codeview::CVRecord< Kind >::kind().

Referenced by llvm::logicalview::LVLogicalVisitor::visitKnownRecord().

◆ isIdRecord()

bool llvm::codeview::isIdRecord ( TypeLeafKind K)
inline

Return true if this record should be in the IPI stream of a PDB.

In an object file, these record kinds will appear mixed into the .debug$T section.

Definition at line 30 of file TypeRecordHelpers.h.

◆ 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 27 of file TypeRecordHelpers.cpp.

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

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

◆ limitSymbolArrayToScope()

◆ make_error_code()

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

Definition at line 37 of file CodeViewError.h.

References CVErrorCategory(), and E().

◆ mergeIdRecords() [1/2]

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

Definition at line 471 of file TypeStreamMerger.cpp.

◆ mergeIdRecords() [2/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 437 of file TypeStreamMerger.cpp.

◆ mergeTypeAndIdRecords() [1/2]

Error llvm::codeview::mergeTypeAndIdRecords ( GlobalTypeTableBuilder & DestIds,
GlobalTypeTableBuilder & DestTypes,
SmallVectorImpl< TypeIndex > & SourceToDest,
const CVTypeArray & IdsAndTypes,
ArrayRef< GloballyHashedType > Hashes,
std::optional< PCHMergerInfo > & PCHInfo )

Definition at line 453 of file TypeStreamMerger.cpp.

◆ mergeTypeAndIdRecords() [2/2]

Error llvm::codeview::mergeTypeAndIdRecords ( MergingTypeTableBuilder & DestIds,
MergingTypeTableBuilder & DestTypes,
SmallVectorImpl< TypeIndex > & SourceToDest,
const CVTypeArray & IdsAndTypes,
std::optional< PCHMergerInfo > & PCHInfo )

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 445 of file TypeStreamMerger.cpp.

◆ mergeTypeRecords() [1/2]

Error llvm::codeview::mergeTypeRecords ( GlobalTypeTableBuilder & Dest,
SmallVectorImpl< TypeIndex > & SourceToDest,
const CVTypeArray & Types,
ArrayRef< GloballyHashedType > Hashes,
std::optional< PCHMergerInfo > & PCHInfo )

Definition at line 462 of file TypeStreamMerger.cpp.

◆ mergeTypeRecords() [2/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 430 of file TypeStreamMerger.cpp.

◆ operator!=() [1/2]

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

Definition at line 33 of file FunctionId.h.

References A(), and B().

◆ operator!=() [2/2]

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

Definition at line 46 of file GUID.h.

References LHS, and RHS.

◆ operator<() [1/2]

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

Definition at line 37 of file FunctionId.h.

References A(), and B().

◆ operator<() [2/2]

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

Definition at line 30 of file GUID.h.

References LHS, and RHS.

◆ operator<<()

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

Definition at line 57 of file Formatters.cpp.

References A(), and llvm::Guid.

◆ operator<=() [1/2]

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

Definition at line 41 of file FunctionId.h.

References A(), and B().

◆ operator<=() [2/2]

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

Definition at line 34 of file GUID.h.

References LHS, and RHS.

◆ operator==() [1/2]

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

Definition at line 29 of file FunctionId.h.

References A(), and B().

◆ operator==() [2/2]

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

Definition at line 26 of file GUID.h.

References LHS, memcmp, and RHS.

◆ operator>() [1/2]

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

Definition at line 45 of file FunctionId.h.

References A(), and B().

◆ operator>() [2/2]

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

Definition at line 38 of file GUID.h.

References LHS, and RHS.

◆ operator>=() [1/2]

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

Definition at line 49 of file FunctionId.h.

References A(), and B().

◆ operator>=() [2/2]

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

Definition at line 42 of file GUID.h.

References LHS, and RHS.

◆ 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 151 of file RecordSerialization.cpp.

References llvm::Offset, and readCVRecordFromStream().

◆ serialize_array()

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

Definition at line 162 of file RecordSerialization.h.

◆ serialize_array_tail() [1/2]

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

Definition at line 177 of file RecordSerialization.h.

◆ serialize_array_tail() [2/2]

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

Definition at line 172 of file RecordSerialization.h.

◆ serialize_conditional()

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

Definition at line 87 of file RecordSerialization.h.

References T.

◆ 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 167 of file RecordSerialization.h.

◆ serialize_numeric()

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

Definition at line 181 of file RecordSerialization.h.

References T.

◆ symbolEndsScope()

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

Return true if this ssymbol ends a scope.

Definition at line 40 of file SymbolRecordHelpers.h.

Referenced by llvm::logicalview::LVSymbolVisitor::visitSymbolEnd(), and llvm::codeview::CVSymbolVisitor::visitSymbolStreamFiltered().

◆ 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 21 of file SymbolRecordHelpers.h.

Referenced by getScopeEndOffset(), getScopeParentOffset(), limitSymbolArrayToScope(), llvm::logicalview::LVSymbolVisitor::visitSymbolBegin(), and llvm::codeview::CVSymbolVisitor::visitSymbolStreamFiltered().

◆ visitDebugSubsection()

◆ visitDebugSubsections() [1/3]

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

Definition at line 82 of file DebugSubsectionVisitor.h.

References T, and llvm::codeview::detail::visitDebugSubsections().

◆ visitDebugSubsections() [2/3]

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

Definition at line 89 of file DebugSubsectionVisitor.h.

References T, and llvm::codeview::detail::visitDebugSubsections().

◆ visitDebugSubsections() [3/3]

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

Definition at line 97 of file DebugSubsectionVisitor.h.

References T, and llvm::codeview::detail::visitDebugSubsections().

◆ visitMemberRecord() [1/2]

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

Definition at line 255 of file CVTypeVisitor.cpp.

Referenced by visitMemberRecord().

◆ visitMemberRecord() [2/2]

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

Definition at line 262 of file CVTypeVisitor.cpp.

References VDS_BytesPresent, and visitMemberRecord().

◆ visitMemberRecordStream()

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

Definition at line 271 of file CVTypeVisitor.cpp.

References FieldList, and VDS_BytesPresent.

◆ visitTypeRecord() [1/2]

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

Definition at line 219 of file CVTypeVisitor.cpp.

Referenced by computeTypeName().

◆ 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.

◆ 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.