LLVM
8.0.1
|
Namespaces | |
detail | |
Typedefs | |
using | DebugSubsectionArray = VarStreamArray< DebugSubsectionRecord > |
using | CVSymbol = CVRecord< SymbolKind > |
using | CVSymbolArray = VarStreamArray< CVSymbol > |
using | CVType = CVRecord< TypeLeafKind > |
using | RemappedType = RemappedRecord< TypeLeafKind > |
using | CVTypeArray = VarStreamArray< CVType > |
using | CVTypeRange = iterator_range< CVTypeArray::Iterator > |
using llvm::codeview::CVSymbol = typedef CVRecord<SymbolKind> |
Definition at line 987 of file SymbolRecord.h.
using llvm::codeview::CVSymbolArray = typedef VarStreamArray<CVSymbol> |
Definition at line 988 of file SymbolRecord.h.
using llvm::codeview::CVType = typedef CVRecord<TypeLeafKind> |
Definition at line 36 of file TypeRecord.h.
using llvm::codeview::CVTypeArray = typedef VarStreamArray<CVType> |
Definition at line 43 of file TypeRecord.h.
using llvm::codeview::CVTypeRange = typedef iterator_range<CVTypeArray::Iterator> |
Definition at line 44 of file TypeRecord.h.
using llvm::codeview::DebugSubsectionArray = typedef VarStreamArray<DebugSubsectionRecord> |
Definition at line 97 of file DebugSubsectionRecord.h.
using llvm::codeview::RemappedType = typedef RemappedRecord<TypeLeafKind> |
Definition at line 37 of file TypeRecord.h.
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.
|
strong |
Definition at line 485 of file CodeView.h.
|
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.
Definition at line 173 of file CodeView.h.
|
strong |
Definition at line 201 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
ObjectFile | |
Pdb |
Definition at line 587 of file CodeView.h.
|
strong |
Corresponds to COMPILESYM2::Flags bitfield.
Enumerator | |
---|---|
None | |
SourceLanguageMask | |
EC | |
NoDbgInfo | |
LTCG | |
NoDataAlign | |
ManagedPresent | |
SecurityChecks | |
HotPatch | |
CVTCIL | |
MSILModule |
Definition at line 439 of file CodeView.h.
|
strong |
Corresponds to COMPILESYM3::Flags bitfield.
Enumerator | |
---|---|
None | |
SourceLanguageMask | |
EC | |
NoDbgInfo | |
LTCG | |
NoDataAlign | |
ManagedPresent | |
SecurityChecks | |
HotPatch | |
CVTCIL | |
MSILModule | |
Sdl | |
PGO | |
Exp |
Definition at line 455 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
FieldList | |
MethodOverloadList |
Definition at line 33 of file ContinuationRecordBuilder.h.
|
strong |
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx.
Definition at line 79 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
unspecified | |
insufficient_buffer | |
operation_unsupported | |
corrupt_record | |
no_records | |
unknown_member_record |
Definition at line 19 of file CodeViewError.h.
|
strong |
Enumerator | |
---|---|
None | |
Symbols | |
Lines | |
StringTable | |
FileChecksums | |
FrameData | |
InlineeLines | |
CrossScopeImports | |
CrossScopeExports | |
ILLines | |
FuncMDTokenMap | |
TypeMDTokenMap | |
MergedAssemblyInput | |
CoffSymbolRVA |
Definition at line 307 of file CodeView.h.
|
strong |
Two-bit value indicating which register is the designated frame pointer register.
Appears in the S_FRAMEPROC record flags.
Enumerator | |
---|---|
None | |
StackPtr | |
FramePtr | |
BasePtr |
Definition at line 519 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
None | |
IsConstant | |
IsData | |
IsPrivate | |
HasNoName | |
HasExplicitOrdinal | |
IsForwarder |
Definition at line 473 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
None | |
MD5 | |
SHA1 | |
SHA256 |
Definition at line 544 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
Copy | |
XorStackPointer | |
XorFramePointer | |
XorR13 |
Definition at line 503 of file CodeView.h.
|
strong |
Definition at line 218 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
None | |
CxxReturnUdt | |
Constructor | |
ConstructorWithVirtualBases |
Definition at line 244 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
SHA1 | |
SHA1_8 |
Definition at line 61 of file TypeHashing.h.
|
strong |
Enumerator | |
---|---|
None | |
Float | |
Double | |
Other |
Definition at line 252 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
Normal | |
ExtraFiles |
Definition at line 32 of file DebugInlineeLinesSubsection.h.
|
strong |
enum llvm::codeview::LineFlags : uint16_t |
Enumerator | |
---|---|
LF_None | |
LF_HaveColumns |
Definition at line 546 of file CodeView.h.
|
strong |
Corresponds to CV_LVARFLAGS bitfield.
Enumerator | |
---|---|
None | |
IsParameter | |
IsAddressTaken | |
IsCompilerGenerated | |
IsAggregate | |
IsAggregated | |
IsAliased | |
IsAlias | |
IsReturnValue | |
IsOptimizedOut | |
IsEnregisteredGlobal | |
IsEnregisteredStatic |
Definition at line 398 of file CodeView.h.
|
strong |
Source-level access specifier. (CV_access_e)
Enumerator | |
---|---|
None | |
Private | |
Protected | |
Public |
Definition at line 260 of file CodeView.h.
|
strong |
Part of member attribute flags. (CV_methodprop_e)
Enumerator | |
---|---|
Vanilla | |
Virtual | |
Static | |
Friend | |
IntroducingVirtual | |
PureVirtual | |
PureIntroducingVirtual |
Definition at line 268 of file CodeView.h.
|
strong |
Equivalent to CV_fldattr_t bitfield.
Enumerator | |
---|---|
None | |
AccessMask | |
MethodKindMask | |
Pseudo | |
NoInherit | |
NoConstruct | |
CompilerGenerated | |
Sealed |
Definition at line 279 of file CodeView.h.
|
strong |
Equivalent to CV_modifier_t.
TODO: Add flag for _Atomic modifier
Enumerator | |
---|---|
None | |
Const | |
Volatile | |
Unaligned |
Definition at line 299 of file CodeView.h.
|
strong |
Equivalent to CV_ptrtype_e.
Enumerator | |
---|---|
Near16 | |
Far16 | |
Huge16 | |
BasedOnSegment | |
BasedOnValue | |
BasedOnSegmentValue | |
BasedOnAddress | |
BasedOnSegmentAddress | |
BasedOnType | |
BasedOnSelf | |
Near32 | |
Far32 | |
Near64 |
Definition at line 328 of file CodeView.h.
|
strong |
Equivalent to CV_ptrmode_e.
Enumerator | |
---|---|
Pointer | |
LValueReference | |
PointerToDataMember | |
PointerToMemberFunction | |
RValueReference |
Definition at line 345 of file CodeView.h.
|
strong |
Equivalent to misc lfPointerAttr bitfields.
Enumerator | |
---|---|
None | |
Flat32 | |
Volatile | |
Const | |
Unaligned | |
Restrict | |
WinRTSmartPointer | |
LValueRefThisPointer | |
RValueRefThisPointer |
Definition at line 354 of file CodeView.h.
|
strong |
Equivalent to CV_pmtype_e.
Enumerator | |
---|---|
Unknown | |
SingleInheritanceData | |
MultipleInheritanceData | |
VirtualInheritanceData | |
GeneralData | |
SingleInheritanceFunction | |
MultipleInheritanceFunction | |
VirtualInheritanceFunction | |
GeneralFunction |
Definition at line 368 of file CodeView.h.
|
strong |
Corresponds to the CV_PROCFLAGS bitfield.
Enumerator | |
---|---|
None | |
HasFP | |
HasIRET | |
HasFRET | |
IsNoReturn | |
IsUnreachable | |
HasCustomCallingConv | |
IsNoInline | |
HasOptimizedDebugInfo |
Definition at line 425 of file CodeView.h.
|
strong |
Corresponds to the CV_PUBSYMFLAGS bitfield.
Enumerator | |
---|---|
None | |
Code | |
Function | |
Managed | |
MSIL |
Definition at line 415 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
CV_REGISTER |
Definition at line 511 of file CodeView.h.
|
strong |
Definition at line 27 of file TypeIndex.h.
|
strong |
Enumerator | |
---|---|
Direct | |
NearPointer | |
FarPointer | |
HugePointer | |
NearPointer32 | |
FarPointer32 | |
NearPointer64 | |
NearPointer128 |
Definition at line 82 of file TypeIndex.h.
enum llvm::codeview::SourceLanguage : uint8_t |
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx.
Definition at line 144 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 | |
CV_SYMBOL | |
CV_SYMBOL | |
CV_SYMBOL | |
CV_SYMBOL | |
SYMBOL_RECORD | |
SYMBOL_RECORD_ALIAS | |
CV_SYMBOL | |
CV_SYMBOL | |
CV_SYMBOL |
Definition at line 48 of file CodeView.h.
|
strong |
Distinguishes individual records in the Symbols subsection of a .debug$S section.
Equivalent to SYM_ENUM_e in cvinfo.h.
Enumerator | |
---|---|
SYMBOL_RECORD | |
CV_SYMBOL | |
SYMBOL_RECORD_ALIAS | |
CV_SYMBOL |
Definition at line 41 of file CodeView.h.
|
strong |
These values correspond to the THUNK_ORDINAL enumeration.
Enumerator | |
---|---|
Standard | |
ThisAdjustor | |
Vcall | |
Pcode | |
UnknownLoad | |
TrampIncremental | |
BranchIsland |
Definition at line 531 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
TypeRef | |
IndexRef |
Definition at line 20 of file TypeIndexDiscovery.h.
|
strong |
Enumerator | |
---|---|
TrampIncremental | |
BranchIsland |
Definition at line 541 of file CodeView.h.
enum llvm::codeview::TypeLeafKind : 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_TYPE | |
CV_TYPE | |
TYPE_RECORD | |
TYPE_RECORD_ALIAS | |
MEMBER_RECORD | |
MEMBER_RECORD_ALIAS | |
MEMBER_RECORD_ALIAS | |
MEMBER_RECORD_ALIAS | |
MEMBER_RECORD_ALIAS | |
MEMBER_RECORD_ALIAS | |
MEMBER_RECORD_ALIAS |
Definition at line 34 of file CodeView.h.
|
strong |
Distinguishes individual records in .debug$T or .debug$P section or PDB type stream.
The documentation and headers talk about this as the "leaf" type.
Enumerator | |
---|---|
TYPE_RECORD | |
CV_TYPE | |
TYPE_RECORD_ALIAS | |
MEMBER_RECORD | |
MEMBER_RECORD_ALIAS | |
MEMBER_RECORD_ALIAS |
Definition at line 27 of file CodeView.h.
|
strong |
Enumerator | |
---|---|
Near16 | |
Far16 | |
This | |
Outer | |
Meta | |
Near | |
Far |
Definition at line 380 of file CodeView.h.
Enumerator | |
---|---|
VDS_BytesPresent | |
VDS_BytesExternal |
Definition at line 22 of file CVTypeVisitor.h.
|
strong |
Enumerator | |
---|---|
None | |
RefClass | |
ValueClass | |
Interface |
Definition at line 390 of file CodeView.h.
|
inline |
Definition at line 589 of file CodeView.h.
References ObjectFile.
Referenced by llvm::pdb::DbiModuleDescriptorBuilder::addSymbolsInBulk(), llvm::codeview::DebugSubsectionRecordBuilder::commit(), llvm::pdb::DbiModuleDescriptorBuilder::commit(), and llvm::codeview::SymbolRecordMapping::visitSymbolEnd().
std::string llvm::codeview::computeTypeName | ( | TypeCollection & | Types, |
TypeIndex | Index | ||
) |
Definition at line 249 of file RecordName.cpp.
References llvm::consumeError(), EC, llvm::codeview::TypeCollection::getType(), and visitTypeRecord().
Referenced by llvm::pdb::TpiStream::findRecordsByName(), llvm::codeview::TypeTableCollection::getTypeName(), and llvm::codeview::LazyRandomTypeCollection::getTypeName().
|
inline |
Definition at line 44 of file RecordSerialization.h.
References consume_numeric(), llvm::Data, and llvm::Error::success().
Referenced by consume(), consume_numeric(), llvm::codeview::serialize_conditional_impl< T, U >::deserialize(), llvm::codeview::serialize_vector_tail_impl< T >::deserialize(), and llvm::codeview::CodeViewRecordIO::mapEncodedInteger().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
APSInt & | Num | ||
) |
Decodes a numeric "leaf" value.
These are integer literals encountered in the type stream. If the value is positive and less than LF_NUMERIC (1 << 15), it is emitted directly in Data. Otherwise, it has a tag like LF_CHAR that indicates the bitwidth and sign of the numeric data.
Definition at line 37 of file RecordSerialization.cpp.
References llvm::lltok::APSInt, corrupt_record, EC, N, llvm::BinaryStreamReader::readInteger(), and llvm::Error::success().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
uint32_t & | Item | ||
) |
Decodes signed and unsigned fixed-length integers.
Definition at line 127 of file RecordSerialization.cpp.
References llvm::BinaryStreamReader::readInteger().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
int32_t & | Item | ||
) |
Definition at line 140 of file RecordSerialization.cpp.
References llvm::BinaryStreamReader::readInteger().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
StringRef & | Item | ||
) |
Decodes a null terminated string.
Definition at line 144 of file RecordSerialization.cpp.
References corrupt_record, llvm::BinaryStreamReader::empty(), and llvm::BinaryStreamReader::readCString().
Definition at line 105 of file RecordSerialization.cpp.
References llvm::StringRef::bytes_begin(), llvm::StringRef::bytes_end(), llvm::BinaryStreamReader::bytesRemaining(), consume(), EC, llvm::support::little, and llvm::StringRef::take_back().
Definition at line 131 of file RecordSerialization.cpp.
References llvm::StringRef::bytes_begin(), llvm::StringRef::bytes_end(), llvm::BinaryStreamReader::bytesRemaining(), consume(), EC, llvm::support::little, and llvm::StringRef::take_back().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
T *& | Item | ||
) |
Decodes an arbitrary object whose layout matches that of the underlying byte sequence, and returns a pointer to the object.
Definition at line 67 of file RecordSerialization.h.
References llvm::BinaryStreamReader::readObject().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
const serialize_conditional_impl< T, U > & | Item | ||
) |
Definition at line 184 of file RecordSerialization.h.
References llvm::codeview::serialize_conditional_impl< T, U >::deserialize().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
const serialize_array_impl< T, U > & | Item | ||
) |
Definition at line 190 of file RecordSerialization.h.
References llvm::codeview::serialize_array_impl< T, U >::deserialize().
|
inline |
Definition at line 195 of file RecordSerialization.h.
References llvm::codeview::serialize_null_term_string_array_impl::deserialize().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
const serialize_vector_tail_impl< T > & | Item | ||
) |
Definition at line 201 of file RecordSerialization.h.
References llvm::codeview::serialize_vector_tail_impl< T >::deserialize().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
const serialize_arrayref_tail_impl< T > & | Item | ||
) |
Definition at line 207 of file RecordSerialization.h.
References llvm::codeview::serialize_arrayref_tail_impl< T >::deserialize().
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
const serialize_numeric_impl< T > & | Item | ||
) |
Definition at line 213 of file RecordSerialization.h.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::codeview::serialize_numeric_impl< T >::deserialize(), and T.
Error llvm::codeview::consume | ( | BinaryStreamReader & | Reader, |
T && | X, | ||
U && | Y, | ||
Args &&... | Rest | ||
) |
Error llvm::codeview::consume_numeric | ( | BinaryStreamReader & | Reader, |
uint64_t & | Value | ||
) |
Decodes a numeric leaf value that is known to be a particular type.
Decode a numeric leaf value that is known to be a uint64_t.
Definition at line 115 of file RecordSerialization.cpp.
References consume(), corrupt_record, EC, llvm::APInt::getLimitedValue(), llvm::APInt::isIntN(), llvm::APSInt::isSigned(), N, and llvm::Error::success().
Referenced by consume(), and llvm::codeview::serialize_numeric_impl< T >::deserialize().
const std::error_category & llvm::codeview::CVErrorCategory | ( | ) |
Definition at line 44 of file CodeViewError.cpp.
References CodeViewErrCategory, and llvm::codeview::CodeViewError::ID.
Referenced by make_error_code().
RegisterId llvm::codeview::decodeFramePtrReg | ( | EncodedFramePtrReg | EncodedReg, |
CPUType | CPU | ||
) |
Definition at line 475 of file SymbolRecordMapping.cpp.
References assert(), BasePtr, llvm::N86::EBP, llvm::N86::EBX, FramePtr, Intel80286, Intel80386, Intel80486, Intel8080, Intel8086, llvm_unreachable, llvm::SIOutMods::NONE, None, Pentium, Pentium3, PentiumPro, StackPtr, and X64.
Referenced by llvm::codeview::FrameProcSym::getLocalFramePtrReg(), and llvm::codeview::FrameProcSym::getParamFramePtrReg().
void llvm::codeview::discoverTypeIndices | ( | ArrayRef< uint8_t > | RecordData, |
SmallVectorImpl< TiReference > & | Refs | ||
) |
Definition at line 491 of file TypeIndexDiscovery.cpp.
References llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::drop_front(), P, and llvm::codeview::RecordPrefix::RecordKind.
Referenced by discoverTypeIndices(), getModifiedType(), and llvm::codeview::GloballyHashedType::hashType().
void llvm::codeview::discoverTypeIndices | ( | const CVType & | Type, |
SmallVectorImpl< TiReference > & | Refs | ||
) |
Definition at line 455 of file TypeIndexDiscovery.cpp.
References llvm::codeview::CVRecord< Kind >::content(), discoverTypeIndices(), and llvm::codeview::CVRecord< Kind >::kind().
void llvm::codeview::discoverTypeIndices | ( | const CVType & | Type, |
SmallVectorImpl< TypeIndex > & | Indices | ||
) |
Definition at line 479 of file TypeIndexDiscovery.cpp.
References discoverTypeIndices(), and llvm::codeview::CVRecord< Kind >::RecordData.
void llvm::codeview::discoverTypeIndices | ( | ArrayRef< uint8_t > | RecordData, |
SmallVectorImpl< TypeIndex > & | Indices | ||
) |
Definition at line 484 of file TypeIndexDiscovery.cpp.
References discoverTypeIndices(), and resolveTypeIndexReferences().
bool llvm::codeview::discoverTypeIndicesInSymbol | ( | const CVSymbol & | Symbol, |
SmallVectorImpl< TiReference > & | Refs | ||
) |
Discover type indices in symbol records.
Returns false if this is an unknown record.
Definition at line 499 of file TypeIndexDiscovery.cpp.
References llvm::codeview::CVRecord< Kind >::content(), discoverTypeIndices(), and llvm::codeview::CVRecord< Kind >::kind().
Referenced by discoverTypeIndicesInSymbol().
bool llvm::codeview::discoverTypeIndicesInSymbol | ( | ArrayRef< uint8_t > | RecordData, |
SmallVectorImpl< TiReference > & | Refs | ||
) |
Definition at line 505 of file TypeIndexDiscovery.cpp.
References llvm::ArrayRef< T >::data(), discoverTypeIndices(), llvm::ArrayRef< T >::drop_front(), P, and llvm::codeview::RecordPrefix::RecordKind.
bool llvm::codeview::discoverTypeIndicesInSymbol | ( | ArrayRef< uint8_t > | RecordData, |
SmallVectorImpl< TypeIndex > & | Indices | ||
) |
Definition at line 514 of file TypeIndexDiscovery.cpp.
References discoverTypeIndicesInSymbol(), and resolveTypeIndexReferences().
EncodedFramePtrReg llvm::codeview::encodeFramePtrReg | ( | RegisterId | Reg, |
CPUType | CPU | ||
) |
Definition at line 509 of file SymbolRecordMapping.cpp.
References BasePtr, llvm::N86::EBP, llvm::N86::EBX, FramePtr, Intel80286, Intel80386, Intel80486, Intel8080, Intel8086, None, Pentium, Pentium3, PentiumPro, StackPtr, and X64.
Referenced by copyBytesForDefRange().
|
inline |
Definition at line 40 of file Formatters.h.
|
inline |
Definition at line 44 of file Formatters.h.
Error llvm::codeview::forEachCodeViewRecord | ( | ArrayRef< uint8_t > | StreamBuffer, |
Func | F | ||
) |
Definition at line 60 of file CVRecord.h.
References corrupt_record, llvm::Data, llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::drop_front(), EC, llvm::ArrayRef< T >::empty(), F(), llvm::cl::Prefix, llvm::codeview::RecordPrefix::RecordLen, llvm::ArrayRef< T >::size(), llvm::Error::success(), and llvm::ArrayRef< T >::take_front().
Reinterpret a byte array as an array of characters.
Does not interpret as a C string, as StringRef has several helpers (split) that make that easy.
Definition at line 28 of file RecordSerialization.cpp.
References llvm::ArrayRef< T >::data(), and llvm::ArrayRef< T >::size().
Referenced by getBytesAsCString(), llvm::codeview::TypeDumpVisitor::visitMemberEnd(), and llvm::codeview::TypeDumpVisitor::visitTypeEnd().
Definition at line 33 of file RecordSerialization.cpp.
References getBytesAsCharacters(), and llvm::StringRef::split().
Definition at line 327 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 331 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 339 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 347 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 335 of file EnumTables.cpp.
References llvm::makeArrayRef().
Definition at line 319 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 343 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
ArrayRef< EnumEntry< COFF::SectionCharacteristics > > llvm::codeview::getImageSectionCharacteristicNames | ( | ) |
Definition at line 364 of file EnumTables.cpp.
References ImageSectionCharacteristicNames, and llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 315 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Given a CVType which is assumed to be an LF_MODIFIER, return the TypeIndex of the type that the LF_MODIFIER modifies.
Definition at line 48 of file TypeRecordHelpers.cpp.
References assert(), discoverTypeIndices(), and llvm::codeview::CVRecord< Kind >::kind().
Referenced by llvm::pdb::NativeEnumTypes::NativeEnumTypes().
Definition at line 351 of file EnumTables.cpp.
References llvm::makeArrayRef().
Definition at line 311 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 307 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 303 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Given a symbol P for which symbolOpensScope(P) == true, return the corresponding end offset.
Definition at line 24 of file SymbolRecordHelpers.cpp.
References assert(), llvm::codeview::ProcSym::End, llvm::codeview::Thunk32Sym::End, llvm::codeview::InlineSiteSym::End, llvm::codeview::BlockSym::End, llvm::codeview::CVRecord< Kind >::kind(), and symbolOpensScope().
Referenced by limitSymbolArrayToScope(), and symbolEndsScope().
Definition at line 55 of file SymbolRecordHelpers.cpp.
References assert(), llvm::codeview::CVRecord< Kind >::kind(), llvm::codeview::ProcSym::Parent, llvm::codeview::Thunk32Sym::Parent, llvm::codeview::InlineSiteSym::Parent, llvm::codeview::BlockSym::Parent, and symbolOpensScope().
Referenced by symbolEndsScope().
ArrayRef< EnumEntry< SourceLanguage > > llvm::codeview::getSourceLanguageNames | ( | ) |
Definition at line 323 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 318 of file RecordName.cpp.
References llvm::cantFail(), Const, llvm::codeview::CVRecord< Kind >::content(), getSymbolNameOffset(), llvm::codeview::CVRecord< Kind >::kind(), llvm::support::little, llvm::codeview::ConstantSym::Name, ObjectFile, llvm::StringRef::split(), and llvm::toStringRef().
Referenced by llvm::pdb::GlobalsStream::findRecordsByName().
ArrayRef< EnumEntry< SymbolKind > > llvm::codeview::getSymbolTypeNames | ( | ) |
Definition at line 295 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName(), and getSymbolName().
Definition at line 355 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
Definition at line 359 of file EnumTables.cpp.
References llvm::makeArrayRef().
Referenced by getSymbolKindName().
ArrayRef< EnumEntry< TypeLeafKind > > llvm::codeview::getTypeLeafNames | ( | ) |
Definition at line 299 of file EnumTables.cpp.
References llvm::makeArrayRef().
Given an arbitrary codeview type, determine if it is an LF_STRUCTURE, LF_CLASS, LF_INTERFACE, LF_UNION, or LF_ENUM with the forward ref class option.
Definition at line 28 of file TypeRecordHelpers.cpp.
References ForwardReference, llvm::codeview::CVRecord< Kind >::kind(), and None.
Referenced by llvm::pdb::TpiStream::findFullDeclForForwardRef(), llvm::pdb::SymbolCache::findSymbolByTypeIndex(), and llvm::pdb::NativeEnumTypes::NativeEnumTypes().
CVSymbolArray llvm::codeview::limitSymbolArrayToScope | ( | const CVSymbolArray & | Symbols, |
uint32_t | ScopeBegin | ||
) |
Definition at line 86 of file SymbolRecordHelpers.cpp.
References assert(), llvm::VarStreamArray< ValueType, Extractor >::at(), getScopeEndOffset(), llvm::codeview::CVRecord< Kind >::kind(), llvm::codeview::CVRecord< Kind >::RecordData, llvm::ArrayRef< T >::size(), llvm::VarStreamArray< ValueType, Extractor >::substream(), and symbolOpensScope().
Referenced by llvm::pdb::ModuleDebugStreamRef::getSymbolArrayForScope(), and symbolEndsScope().
|
inline |
Definition at line 39 of file CodeViewError.h.
References CVErrorCategory().
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.
Dest | The table to store the re-written id records into. |
Types | The mapping to use for the type records that these id records refer to. |
SourceToDest | A vector, indexed by the TypeIndex in the source id stream, that contains the index of the corresponding id record in the destination stream. |
Ids | The collection of id records to merge in. |
Definition at line 436 of file TypeStreamMerger.cpp.
Referenced by isIdRecord(), and slotForIndex().
Error llvm::codeview::mergeIdRecords | ( | GlobalTypeTableBuilder & | Dest, |
ArrayRef< TypeIndex > | Types, | ||
SmallVectorImpl< TypeIndex > & | SourceToDest, | ||
const CVTypeArray & | Ids, | ||
ArrayRef< GloballyHashedType > | Hashes | ||
) |
Definition at line 470 of file TypeStreamMerger.cpp.
References llvm::codeview::TypeDeserializer::deserializeAs(), EC, llvm::codeview::EndPrecompRecord::getSignature(), llvm::joinErrors(), and llvm::codeview::CVRecord< Kind >::kind().
Error llvm::codeview::mergeTypeAndIdRecords | ( | MergingTypeTableBuilder & | DestIds, |
MergingTypeTableBuilder & | DestTypes, | ||
SmallVectorImpl< TypeIndex > & | SourceToDest, | ||
const CVTypeArray & | IdsAndTypes, | ||
Optional< uint32_t > & | PCHSignature | ||
) |
Merge a unified set of type and id records, splitting them into separate output streams.
DestIds | The table to store the re-written id records into. |
DestTypes | the table to store the re-written type records into. |
SourceToDest | A vector, indexed by the TypeIndex in the source id stream, that contains the index of the corresponding id record in the destination stream. |
IdsAndTypes | The collection of id records to merge in. |
Definition at line 444 of file TypeStreamMerger.cpp.
Error llvm::codeview::mergeTypeAndIdRecords | ( | GlobalTypeTableBuilder & | DestIds, |
GlobalTypeTableBuilder & | DestTypes, | ||
SmallVectorImpl< TypeIndex > & | SourceToDest, | ||
const CVTypeArray & | IdsAndTypes, | ||
ArrayRef< GloballyHashedType > | Hashes, | ||
Optional< uint32_t > & | PCHSignature | ||
) |
Definition at line 452 of file TypeStreamMerger.cpp.
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.
Dest | The table to store the re-written type records into. |
SourceToDest | A vector, indexed by the TypeIndex in the source type stream, that contains the index of the corresponding type record in the destination stream. |
Types | The collection of types to merge in. |
Definition at line 429 of file TypeStreamMerger.cpp.
Referenced by isIdRecord(), and slotForIndex().
Error llvm::codeview::mergeTypeRecords | ( | GlobalTypeTableBuilder & | Dest, |
SmallVectorImpl< TypeIndex > & | SourceToDest, | ||
const CVTypeArray & | Types, | ||
ArrayRef< GloballyHashedType > | Hashes, | ||
Optional< uint32_t > & | PCHSignature | ||
) |
Definition at line 461 of file TypeStreamMerger.cpp.
|
inline |
Definition at line 34 of file FunctionId.h.
References llvm::codeview::FunctionId::getIndex().
Definition at line 46 of file GUID.h.
References llvm::codeview::GUID::Guid, and operator<<().
Definition at line 30 of file GUID.h.
References llvm::codeview::GUID::Guid, and memcmp.
|
inline |
Definition at line 38 of file FunctionId.h.
References llvm::codeview::FunctionId::getIndex().
raw_ostream & llvm::codeview::operator<< | ( | raw_ostream & | OS, |
const GUID & | Guid | ||
) |
Definition at line 44 of file Formatters.cpp.
References llvm::codeview::detail::GuidAdapter::format(), and llvm::codeview::GUID::Guid.
Referenced by operator!=().
Definition at line 34 of file GUID.h.
References llvm::codeview::GUID::Guid, and memcmp.
|
inline |
Definition at line 42 of file FunctionId.h.
References llvm::codeview::FunctionId::getIndex().
Definition at line 26 of file GUID.h.
References llvm::codeview::GUID::Guid, and memcmp.
|
inline |
Definition at line 30 of file FunctionId.h.
References llvm::codeview::FunctionId::getIndex().
|
inline |
Definition at line 46 of file FunctionId.h.
References llvm::codeview::FunctionId::getIndex().
|
inline |
Definition at line 50 of file FunctionId.h.
References llvm::codeview::FunctionId::getIndex().
void llvm::codeview::printTypeIndex | ( | ScopedPrinter & | Printer, |
StringRef | FieldName, | ||
TypeIndex | TI, | ||
TypeCollection & | Types | ||
) |
Definition at line 93 of file TypeIndex.cpp.
References llvm::StringRef::empty(), llvm::codeview::TypeIndex::getIndex(), llvm::codeview::TypeCollection::getTypeName(), llvm::codeview::TypeIndex::isNoneType(), llvm::codeview::TypeIndex::isSimple(), llvm::ScopedPrinter::printHex(), llvm::codeview::TypeIndex::simpleTypeName(), and llvm::AMDGPU::HSAMD::Kernel::Arg::Key::TypeName.
Referenced by getSymbolKindName(), llvm::codeview::TypeDumpVisitor::printItemIndex(), and llvm::codeview::TypeDumpVisitor::printTypeIndex().
|
inline |
Read a complete record from a stream at a random offset.
Definition at line 85 of file CVRecord.h.
References corrupt_record, EC, Kind, llvm::cl::Prefix, llvm::BinaryStreamReader::readBytes(), llvm::BinaryStreamReader::readObject(), llvm::codeview::RecordPrefix::RecordKind, llvm::codeview::RecordPrefix::RecordLen, and llvm::BinaryStreamReader::setOffset().
Expected< CVSymbol > llvm::codeview::readSymbolFromStream | ( | BinaryStreamRef | Stream, |
uint32_t | Offset | ||
) |
Definition at line 152 of file RecordSerialization.cpp.
serialize_array_impl<T, U> llvm::codeview::serialize_array | ( | ArrayRef< T > & | Item, |
U | Func | ||
) |
Definition at line 160 of file RecordSerialization.h.
serialize_vector_tail_impl<T> llvm::codeview::serialize_array_tail | ( | std::vector< T > & | Item | ) |
Definition at line 170 of file RecordSerialization.h.
serialize_arrayref_tail_impl<T> llvm::codeview::serialize_array_tail | ( | ArrayRef< T > & | Item | ) |
Definition at line 175 of file RecordSerialization.h.
serialize_conditional_impl<T, U> llvm::codeview::serialize_conditional | ( | T & | Item, |
U | Func | ||
) |
Definition at line 85 of file RecordSerialization.h.
|
inline |
Definition at line 165 of file RecordSerialization.h.
serialize_numeric_impl<T> llvm::codeview::serialize_numeric | ( | T & | Item | ) |
Definition at line 179 of file RecordSerialization.h.
|
inline |
Return true if this ssymbol ends a scope.
Definition at line 39 of file SymbolRecordHelpers.h.
References getScopeEndOffset(), getScopeParentOffset(), limitSymbolArrayToScope(), llvm::ARMBuildAttrs::Symbol, and Symbols.
|
inline |
Return true if this symbol opens a scope.
This implies that the symbol has "parent" and "end" fields, which contain the offset of the S_END or S_INLINESITE_END record.
Definition at line 20 of file SymbolRecordHelpers.h.
Referenced by getScopeEndOffset(), getScopeParentOffset(), and limitSymbolArrayToScope().
Error llvm::codeview::visitDebugSubsection | ( | const DebugSubsectionRecord & | R, |
DebugSubsectionVisitor & | V, | ||
const StringsAndChecksumsRef & | State | ||
) |
Definition at line 29 of file DebugSubsectionVisitor.cpp.
References CoffSymbolRVA, CrossScopeExports, CrossScopeImports, EC, FileChecksums, FrameData, llvm::codeview::DebugSubsectionRecord::getRecordData(), llvm::codeview::DebugSymbolsSubsectionRef::initialize(), llvm::codeview::DebugFrameDataSubsectionRef::initialize(), llvm::codeview::DebugCrossModuleExportsSubsectionRef::initialize(), llvm::codeview::DebugStringTableSubsectionRef::initialize(), llvm::codeview::DebugSymbolRVASubsectionRef::initialize(), llvm::codeview::DebugCrossModuleImportsSubsectionRef::initialize(), llvm::codeview::DebugChecksumsSubsectionRef::initialize(), llvm::codeview::DebugInlineeLinesSubsectionRef::initialize(), llvm::codeview::DebugLinesSubsectionRef::initialize(), InlineeLines, llvm::codeview::DebugSubsectionRecord::kind(), Lines, llvm::ARMBuildAttrs::Section, StringTable, Symbols, llvm::codeview::DebugSubsectionVisitor::visitCOFFSymbolRVAs(), llvm::codeview::DebugSubsectionVisitor::visitCrossModuleExports(), llvm::codeview::DebugSubsectionVisitor::visitCrossModuleImports(), llvm::codeview::DebugSubsectionVisitor::visitFileChecksums(), llvm::codeview::DebugSubsectionVisitor::visitFrameData(), llvm::codeview::DebugSubsectionVisitor::visitInlineeLines(), llvm::codeview::DebugSubsectionVisitor::visitLines(), llvm::codeview::DebugSubsectionVisitor::visitStringTable(), llvm::codeview::DebugSubsectionVisitor::visitSymbols(), and llvm::codeview::DebugSubsectionVisitor::visitUnknown().
Referenced by llvm::CodeViewYAML::YAMLDebugSubsection::fromCodeViewSubection(), llvm::codeview::detail::visitDebugSubsections(), and llvm::codeview::DebugSubsectionVisitor::visitUnknown().
Error llvm::codeview::visitDebugSubsections | ( | T && | FragmentRange, |
DebugSubsectionVisitor & | V | ||
) |
Definition at line 87 of file DebugSubsectionVisitor.h.
References llvm::codeview::detail::visitDebugSubsections().
Error llvm::codeview::visitDebugSubsections | ( | T && | FragmentRange, |
DebugSubsectionVisitor & | V, | ||
const DebugStringTableSubsectionRef & | Strings | ||
) |
Definition at line 94 of file DebugSubsectionVisitor.h.
References llvm::codeview::detail::visitDebugSubsections().
Error llvm::codeview::visitDebugSubsections | ( | T && | FragmentRange, |
DebugSubsectionVisitor & | V, | ||
const DebugStringTableSubsectionRef & | Strings, | ||
const DebugChecksumsSubsectionRef & | Checksums | ||
) |
Definition at line 102 of file DebugSubsectionVisitor.h.
References llvm::codeview::detail::visitDebugSubsections().
Error llvm::codeview::visitMemberRecord | ( | CVMemberRecord | Record, |
TypeVisitorCallbacks & | Callbacks, | ||
VisitorDataSource | Source = VDS_BytesPresent |
||
) |
Definition at line 255 of file CVTypeVisitor.cpp.
References llvm::codeview::CVMemberRecord::Data.
Referenced by visitMemberRecord(), and visitMemberRecord().
Error llvm::codeview::visitMemberRecord | ( | TypeLeafKind | Kind, |
ArrayRef< uint8_t > | Record, | ||
TypeVisitorCallbacks & | Callbacks | ||
) |
Definition at line 262 of file CVTypeVisitor.cpp.
References llvm::codeview::CVMemberRecord::Data, llvm::codeview::CVMemberRecord::Kind, Kind, VDS_BytesPresent, and visitMemberRecord().
Error llvm::codeview::visitMemberRecordStream | ( | ArrayRef< uint8_t > | FieldList, |
TypeVisitorCallbacks & | Callbacks | ||
) |
Definition at line 271 of file CVTypeVisitor.cpp.
References VDS_BytesPresent.
Referenced by llvm::codeview::TypeDumpVisitor::visitMemberEnd().
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(), emitNullTerminatedSymbolName(), and visitMemberRecord().
Error llvm::codeview::visitTypeRecord | ( | CVType & | Record, |
TypeVisitorCallbacks & | Callbacks, | ||
VisitorDataSource | Source = VDS_BytesPresent |
||
) |
Definition at line 226 of file CVTypeVisitor.cpp.
Error llvm::codeview::visitTypeStream | ( | const CVTypeArray & | Types, |
TypeVisitorCallbacks & | Callbacks, | ||
VisitorDataSource | Source = VDS_BytesPresent |
||
) |
Definition at line 233 of file CVTypeVisitor.cpp.
Referenced by visitMemberRecord().
Error llvm::codeview::visitTypeStream | ( | CVTypeRange | Types, |
TypeVisitorCallbacks & | Callbacks | ||
) |
Definition at line 240 of file CVTypeVisitor.cpp.
References VDS_BytesPresent.
Error llvm::codeview::visitTypeStream | ( | TypeCollection & | Types, |
TypeVisitorCallbacks & | Callbacks | ||
) |
Definition at line 246 of file CVTypeVisitor.cpp.
References VDS_BytesPresent.