LLVM  4.0.0
Classes | Typedefs | Enumerations | Functions
llvm::codeview Namespace Reference

Classes

class  CodeViewError
 Base class for errors originating when parsing raw PDB files. More...
 
class  CodeViewRecordIO
 
struct  PDB70DebugInfo
 
struct  PDB20DebugInfo
 
union  DebugInfo
 
class  CVRecord
 
class  CVSymbolVisitor
 
class  CVTypeDumper
 Dumper for CodeView type streams found in COFF object files and PDB files. More...
 
class  CVTypeVisitor
 
class  FunctionId
 
class  LineInfo
 
class  ColumnInfo
 
class  Line
 
struct  InlineeSourceLine
 
struct  FileChecksum
 
struct  ModuleSubsectionHeader
 
struct  LineSubstreamHeader
 
struct  LineFileBlockHeader
 
struct  LineNumberEntry
 
struct  ColumnNumberEntry
 
class  ModuleSubstream
 
struct  LineColumnEntry
 
struct  FileChecksumEntry
 
class  IModuleSubstreamVisitor
 
struct  RecordPrefix
 
struct  serialize_conditional_impl
 
struct  serialize_array_impl
 
struct  serialize_vector_tail_impl
 
struct  serialize_null_term_string_array_impl
 
struct  serialize_arrayref_tail_impl
 
struct  serialize_numeric_impl
 
class  SymbolDeserializer
 
class  SymbolDumpDelegate
 
class  CVSymbolDumper
 Dumper for CodeView symbol streams found in COFF object files and PDB files. More...
 
class  SymbolRecord
 
class  ProcSym
 
class  Thunk32Sym
 
class  TrampolineSym
 
class  SectionSym
 
class  CoffGroupSym
 
class  ScopeEndSym
 
class  CallerSym
 
struct  BinaryAnnotationIterator
 
class  InlineSiteSym
 
class  PublicSym32
 
class  RegisterSym
 
class  ProcRefSym
 
class  LocalSym
 
struct  LocalVariableAddrRange
 
struct  LocalVariableAddrGap
 
class  DefRangeSym
 
class  DefRangeSubfieldSym
 
class  DefRangeRegisterSym
 
class  DefRangeSubfieldRegisterSym
 
class  DefRangeFramePointerRelSym
 
class  DefRangeRegisterRelSym
 
class  DefRangeFramePointerRelFullScopeSym
 
class  BlockSym
 
class  LabelSym
 
class  ObjNameSym
 
class  EnvBlockSym
 
class  ExportSym
 
class  FileStaticSym
 
class  Compile2Sym
 
class  Compile3Sym
 
class  FrameProcSym
 
class  CallSiteInfoSym
 
class  HeapAllocationSiteSym
 
class  FrameCookieSym
 
class  UDTSym
 
class  BuildInfoSym
 
class  BPRelativeSym
 
class  RegRelativeSym
 
class  ConstantSym
 
class  DataSym
 
class  ThreadLocalDataSym
 
class  SymbolRecordMapping
 
class  SymbolSerializer
 
class  SymbolVisitorCallbackPipeline
 
class  SymbolVisitorCallbacks
 
class  SymbolVisitorDelegate
 
class  TypeDatabase
 
class  TypeDatabaseVisitor
 Dumper for CodeView type streams found in COFF object files and PDB files. More...
 
class  TypeDeserializer
 
class  FieldListDeserializer
 
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  CVMemberRecord
 
struct  MemberAttributes
 Equvalent to CV_fldattr_t in cvinfo.h. More...
 
class  MemberPointerInfo
 
class  TypeRecord
 
class  ModifierRecord
 
class  ProcedureRecord
 
class  MemberFunctionRecord
 
class  MemberFuncIdRecord
 
class  ArgListRecord
 
class  PointerRecord
 
class  NestedTypeRecord
 
class  FieldListRecord
 
class  ArrayRecord
 
class  TagRecord
 
class  ClassRecord
 
struct  UnionRecord
 
class  EnumRecord
 
class  BitFieldRecord
 
class  VFTableShapeRecord
 
class  TypeServer2Record
 
class  StringIdRecord
 
class  FuncIdRecord
 
class  UdtSourceLineRecord
 
class  UdtModSourceLineRecord
 
class  BuildInfoRecord
 
class  VFTableRecord
 
class  OneMethodRecord
 
class  MethodOverloadListRecord
 
class  OverloadedMethodRecord
 For method overload sets. LF_METHOD. More...
 
class  DataMemberRecord
 
class  StaticDataMemberRecord
 
class  EnumeratorRecord
 
class  VFPtrRecord
 
class  BaseClassRecord
 
class  VirtualBaseClassRecord
 
class  ListContinuationRecord
 LF_INDEX - Used to chain two large LF_FIELDLIST or LF_METHODLIST records together. More...
 
class  TypeRecordBuilder
 
class  TypeRecordMapping
 
class  TypeSerializer
 
class  TypeSymbolEmitter
 
class  TypeTableBuilder
 
class  FieldListRecordBuilder
 
class  TypeVisitorCallbackPipeline
 
class  TypeVisitorCallbacks
 

Typedefs

typedef msf::VarStreamArray
< ModuleSubstream
ModuleSubstreamArray
 
typedef msf::VarStreamArray
< LineColumnEntry
LineInfoArray
 
typedef msf::VarStreamArray
< FileChecksumEntry
FileChecksumArray
 
typedef CVRecord< SymbolKindCVSymbol
 
typedef msf::VarStreamArray
< CVSymbol
CVSymbolArray
 
typedef CVRecord< TypeLeafKindCVType
 
typedef msf::VarStreamArray
< CVType
CVTypeArray
 

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 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 }
 Distinguishes individual records in the Symbols subsection of a .debug$S section. More...
 
enum  SymbolKind : uint16_t { CV_SYMBOL, CV_SYMBOL, SYMBOL_RECORD, SYMBOL_RECORD_ALIAS }
 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::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
}
 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::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  ModifierOptions : uint16_t { ModifierOptions::None = 0x0000, ModifierOptions::Const = 0x0001, ModifierOptions::Volatile = 0x0002, ModifierOptions::Unaligned = 0x0004 }
 Equivalent to CV_modifier_t. More...
 
enum  ModuleSubstreamKind : uint32_t {
  ModuleSubstreamKind::None = 0, ModuleSubstreamKind::Symbols = 0xf1, ModuleSubstreamKind::Lines = 0xf2, ModuleSubstreamKind::StringTable = 0xf3,
  ModuleSubstreamKind::FileChecksums = 0xf4, ModuleSubstreamKind::FrameData = 0xf5, ModuleSubstreamKind::InlineeLines = 0xf6, ModuleSubstreamKind::CrossScopeImports = 0xf7,
  ModuleSubstreamKind::CrossScopeExports = 0xf8, ModuleSubstreamKind::ILLines = 0xf9, ModuleSubstreamKind::FuncMDTokenMap = 0xfa, ModuleSubstreamKind::TypeMDTokenMap = 0xfb,
  ModuleSubstreamKind::MergedAssemblyInput = 0xfc, ModuleSubstreamKind::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
}
 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  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::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::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::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::Unknown = 0, RegisterId::VFrame = 30006, RegisterId::AL = 1, RegisterId::CL = 2,
  RegisterId::DL = 3, RegisterId::BL = 4, RegisterId::AH = 5, RegisterId::CH = 6,
  RegisterId::DH = 7, RegisterId::BH = 8, RegisterId::AX = 9, RegisterId::CX = 10,
  RegisterId::DX = 11, RegisterId::BX = 12, RegisterId::SP = 13, RegisterId::BP = 14,
  RegisterId::SI = 15, RegisterId::DI = 16, RegisterId::EAX = 17, RegisterId::ECX = 18,
  RegisterId::EDX = 19, RegisterId::EBX = 20, RegisterId::ESP = 21, RegisterId::EBP = 22,
  RegisterId::ESI = 23, RegisterId::EDI = 24, RegisterId::ES = 25, RegisterId::CS = 26,
  RegisterId::SS = 27, RegisterId::DS = 28, RegisterId::FS = 29, RegisterId::GS = 30,
  RegisterId::IP = 31, RegisterId::RAX = 328, RegisterId::RBX = 329, RegisterId::RCX = 330,
  RegisterId::RDX = 331, RegisterId::RSI = 332, RegisterId::RDI = 333, RegisterId::RBP = 334,
  RegisterId::RSP = 335, RegisterId::R8 = 336, RegisterId::R9 = 337, RegisterId::R10 = 338,
  RegisterId::R11 = 339, RegisterId::R12 = 340, RegisterId::R13 = 341, RegisterId::R14 = 342,
  RegisterId::R15 = 343
}
 
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 : uint32_t { HaveColumns = 1 }
 
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::unknown_member_record
}
 
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  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
}
 

Functions

ArrayRef< EnumEntry< SymbolKind > > getSymbolTypeNames ()
 
ArrayRef< EnumEntry
< TypeLeafKind > > 
getTypeLeafNames ()
 
ArrayRef< EnumEntry< uint16_t > > getRegisterNames ()
 
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 ()
 
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)
 
Error visitModuleSubstream (const ModuleSubstream &R, IModuleSubstreamVisitor &V)
 
StringRef getBytesAsCharacters (ArrayRef< uint8_t > LeafData)
 Reinterpret a byte array as an array of characters. More...
 
StringRef getBytesAsCString (ArrayRef< uint8_t > LeafData)
 
Error consume (msf::StreamReader &Reader)
 
Error consume (msf::StreamReader &Reader, APSInt &Num)
 Decodes a numeric "leaf" value. More...
 
Error consume_numeric (msf::StreamReader &Reader, uint64_t &Value)
 Decodes a numeric leaf value that is known to be a particular type. More...
 
Error consume (msf::StreamReader &Reader, uint32_t &Item)
 Decodes signed and unsigned fixed-length integers. More...
 
Error consume (msf::StreamReader &Reader, int32_t &Item)
 
Error consume (msf::StreamReader &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 (msf::StreamReader &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 (msf::StreamReader &Reader, const serialize_conditional_impl< T, U > &Item)
 
template<typename T , typename U >
Error consume (msf::StreamReader &Reader, const serialize_array_impl< T, U > &Item)
 
Error consume (msf::StreamReader &Reader, const serialize_null_term_string_array_impl &Item)
 
template<typename T >
Error consume (msf::StreamReader &Reader, const serialize_vector_tail_impl< T > &Item)
 
template<typename T >
Error consume (msf::StreamReader &Reader, const serialize_arrayref_tail_impl< T > &Item)
 
template<typename T >
Error consume (msf::StreamReader &Reader, const serialize_numeric_impl< T > &Item)
 
template<typename T , typename U , typename... Args>
Error consume (msf::StreamReader &Reader, T &&X, U &&Y, Args &&...Rest)
 
bool mergeTypeStreams (TypeTableBuilder &DestStream, const CVTypeArray &Types)
 Merges one type stream into another. Returns true on success. More...
 

Typedef Documentation

Definition at line 940 of file SymbolRecord.h.

Definition at line 941 of file SymbolRecord.h.

Definition at line 39 of file TypeRecord.h.

Definition at line 45 of file TypeRecord.h.

Definition at line 42 of file ModuleSubstreamVisitor.h.

Definition at line 41 of file ModuleSubstreamVisitor.h.

Definition at line 73 of file ModuleSubstream.h.

Enumeration Type Documentation

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 : uint16_t
Enumerator
MaxDefRange 

Definition at line 432 of file SymbolRecord.h.

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

Definition at line 449 of file CodeView.h.

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

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

Definition at line 190 of file CodeView.h.

Corresponds to COMPILESYM2::Flags bitfield.

Enumerator
EC 
NoDbgInfo 
LTCG 
NoDataAlign 
ManagedPresent 
SecurityChecks 
HotPatch 
CVTCIL 
MSILModule 

Definition at line 408 of file CodeView.h.

Corresponds to COMPILESYM3::Flags bitfield.

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

Definition at line 422 of file CodeView.h.

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 
Omni 
Ia64 
Ia64_2 
CEE 
AM33 
M32R 
TriCore 
X64 
EBC 
Thumb 
ARMNT 
D3D11_Shader 

Definition at line 73 of file CodeView.h.

Enumerator
unspecified 
insufficient_buffer 
operation_unsupported 
corrupt_record 
unknown_member_record 

Definition at line 19 of file CodeViewError.h.

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

Definition at line 438 of file CodeView.h.

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

Definition at line 541 of file CodeView.h.

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

Definition at line 467 of file CodeView.h.

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

Definition at line 207 of file CodeView.h.

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

Definition at line 231 of file CodeView.h.

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

Definition at line 239 of file CodeView.h.

Enumerator
Normal 
ExtraFiles 

Definition at line 130 of file Line.h.

Enumerator
HaveColumns 

Definition at line 543 of file CodeView.h.

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

enum llvm::codeview::MemberAccess : uint8_t
strong

Source-level access specifier. (CV_access_e)

Enumerator
None 
Private 
Protected 
Public 

Definition at line 247 of file CodeView.h.

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

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

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

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

Definition at line 288 of file CodeView.h.

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

enum llvm::codeview::PointerMode : uint8_t
strong

Equivalent to CV_ptrmode_e.

Enumerator
Pointer 
LValueReference 
PointerToDataMember 
PointerToMemberFunction 
RValueReference 

Definition at line 326 of file CodeView.h.

Equivalent to misc lfPointerAttr bitfields.

Enumerator
None 
Flat32 
Volatile 
Const 
Unaligned 
Restrict 
WinRTSmartPointer 

Definition at line 335 of file CodeView.h.

Equivalent to CV_pmtype_e.

Enumerator
Unknown 
SingleInheritanceData 
MultipleInheritanceData 
VirtualInheritanceData 
GeneralData 
SingleInheritanceFunction 
MultipleInheritanceFunction 
VirtualInheritanceFunction 
GeneralFunction 

Definition at line 347 of file CodeView.h.

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

enum llvm::codeview::RegisterId : uint16_t
strong
Enumerator
Unknown 
VFrame 
AL 
CL 
DL 
BL 
AH 
CH 
DH 
BH 
AX 
CX 
DX 
BX 
SP 
BP 
SI 
DI 
EAX 
ECX 
EDX 
EBX 
ESP 
EBP 
ESI 
EDI 
ES 
CS 
SS 
DS 
FS 
GS 
IP 
RAX 
RBX 
RCX 
RDX 
RSI 
RDI 
RBP 
RSP 
R8 
R9 
R10 
R11 
R12 
R13 
R14 
R15 

Definition at line 475 of file CodeView.h.

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 20 of file TypeIndex.h.

Enumerator
Direct 
NearPointer 
FarPointer 
HugePointer 
NearPointer32 
FarPointer32 
NearPointer64 
NearPointer128 

Definition at line 75 of file TypeIndex.h.

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

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

Definition at line 137 of file CodeView.h.

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 
SYMBOL_RECORD 
SYMBOL_RECORD_ALIAS 

Definition at line 42 of file CodeView.h.

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 

Definition at line 35 of file CodeView.h.

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

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

Definition at line 538 of file CodeView.h.

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

enum llvm::codeview::TypeRecordKind : uint16_t
strong

Distinguishes individual records in .debug$T 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 21 of file CodeView.h.

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

Definition at line 359 of file CodeView.h.

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

Definition at line 369 of file CodeView.h.

Function Documentation

Error llvm::codeview::consume ( msf::StreamReader &  Reader)
inline
Error llvm::codeview::consume ( msf::StreamReader 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 llvm::lltok::APSInt, corrupt_record, EC, N, llvm::msf::StreamReader::readInteger(), and llvm::Error::success().

Error llvm::codeview::consume ( msf::StreamReader Reader,
uint32_t Item 
)

Decodes signed and unsigned fixed-length integers.

Definition at line 126 of file RecordSerialization.cpp.

References llvm::msf::StreamReader::readInteger().

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

Definition at line 139 of file RecordSerialization.cpp.

References llvm::msf::StreamReader::readInteger().

Error llvm::codeview::consume ( msf::StreamReader Reader,
StringRef Item 
)

Decodes a null terminated string.

Definition at line 143 of file RecordSerialization.cpp.

References corrupt_record, llvm::msf::StreamReader::empty(), and llvm::msf::StreamReader::readZeroString().

Error llvm::codeview::consume ( StringRef Data,
APSInt Num 
)
Error llvm::codeview::consume ( StringRef Data,
uint32_t Item 
)
template<typename T >
Error llvm::codeview::consume ( msf::StreamReader &  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::msf::StreamReader::readObject().

template<typename T , typename U >
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
const serialize_conditional_impl< T, U > &  Item 
)
template<typename T , typename U >
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
const serialize_array_impl< T, U > &  Item 
)
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
const serialize_null_term_string_array_impl &  Item 
)
inline
template<typename T >
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
const serialize_vector_tail_impl< T > &  Item 
)
template<typename T >
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
const serialize_arrayref_tail_impl< T > &  Item 
)
template<typename T >
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
const serialize_numeric_impl< T > &  Item 
)
template<typename T , typename U , typename... Args>
Error llvm::codeview::consume ( msf::StreamReader &  Reader,
T &&  X,
U &&  Y,
Args &&...  Rest 
)

Definition at line 239 of file RecordSerialization.h.

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

Error llvm::codeview::consume_numeric ( msf::StreamReader 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 consume(), corrupt_record, EC, llvm::APInt::getLimitedValue(), llvm::APInt::isIntN(), llvm::APSInt::isSigned(), N, and llvm::Error::success().

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

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().

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

Definition at line 32 of file RecordSerialization.cpp.

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

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

Definition at line 353 of file CodeView/EnumTables.cpp.

References CompileSym2FlagNames, and llvm::makeArrayRef().

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

Definition at line 356 of file CodeView/EnumTables.cpp.

References CompileSym3FlagNames, and llvm::makeArrayRef().

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

Definition at line 362 of file CodeView/EnumTables.cpp.

References CPUTypeNames, and llvm::makeArrayRef().

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

Definition at line 368 of file CodeView/EnumTables.cpp.

References ExportSymFlagNames, and llvm::makeArrayRef().

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

Definition at line 359 of file CodeView/EnumTables.cpp.

References FileChecksumNames, and llvm::makeArrayRef().

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

Definition at line 347 of file CodeView/EnumTables.cpp.

References FrameCookieKinds, and llvm::makeArrayRef().

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

Definition at line 365 of file CodeView/EnumTables.cpp.

References FrameProcSymFlagNames, and llvm::makeArrayRef().

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

Definition at line 344 of file CodeView/EnumTables.cpp.

References LocalFlags, and llvm::makeArrayRef().

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

Definition at line 371 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and ModuleSubstreamKindNames.

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

Definition at line 341 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and ProcSymFlagNames.

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

Definition at line 337 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and RegisterNames.

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

Definition at line 350 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and SourceLanguages.

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

Definition at line 329 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and SymbolTypeNames.

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

Definition at line 374 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and ThunkOrdinalNames.

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

Definition at line 377 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and TrampolineNames.

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

Definition at line 333 of file CodeView/EnumTables.cpp.

References llvm::makeArrayRef(), and TypeLeafNames.

bool llvm::codeview::mergeTypeStreams ( TypeTableBuilder DestStream,
const CVTypeArray Types 
)

Merges one type stream into another. Returns true on success.

Definition at line 184 of file TypeStreamMerger.cpp.

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

Definition at line 34 of file FunctionId.h.

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

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

Definition at line 38 of file FunctionId.h.

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

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

Definition at line 42 of file FunctionId.h.

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

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

Definition at line 30 of file FunctionId.h.

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

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

Definition at line 46 of file FunctionId.h.

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

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

Definition at line 50 of file FunctionId.h.

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

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.

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.

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

Definition at line 175 of file RecordSerialization.h.

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_impl llvm::codeview::serialize_null_term_string_array ( std::vector< StringRef > &  Item)
inline

Definition at line 165 of file RecordSerialization.h.

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

Definition at line 179 of file RecordSerialization.h.

Error llvm::codeview::visitModuleSubstream ( const ModuleSubstream R,
IModuleSubstreamVisitor V 
)