LLVM
8.0.1
|
#include "llvm/DebugInfo/CodeView/TypeRecordMapping.h"
Public Member Functions | |
TypeRecordMapping (BinaryStreamReader &Reader) | |
TypeRecordMapping (BinaryStreamWriter &Writer) | |
Error | visitTypeBegin (CVType &Record) override |
Paired begin/end actions for all types. More... | |
Error | visitTypeEnd (CVType &Record) override |
Error | visitMemberBegin (CVMemberRecord &Record) override |
Error | visitMemberEnd (CVMemberRecord &Record) override |
Public Member Functions inherited from llvm::codeview::TypeVisitorCallbacks | |
virtual | ~TypeVisitorCallbacks ()=default |
virtual Error | visitUnknownType (CVType &Record) |
Action to take on unknown types. By default, they are ignored. More... | |
virtual Error | visitTypeBegin (CVType &Record, TypeIndex Index) |
virtual Error | visitUnknownMember (CVMemberRecord &Record) |
Definition at line 23 of file TypeRecordMapping.h.
|
inlineexplicit |
Definition at line 25 of file TypeRecordMapping.h.
|
inlineexplicit |
Definition at line 26 of file TypeRecordMapping.h.
References visitMemberBegin(), visitMemberEnd(), visitTypeBegin(), llvm::codeview::TypeVisitorCallbacks::visitTypeBegin(), and visitTypeEnd().
|
overridevirtual |
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 110 of file TypeRecordMapping.cpp.
References assert(), ContinuationLength, error, llvm::codeview::CVMemberRecord::Kind, llvm::codeview::MaxRecordLength, and llvm::Error::success().
Referenced by TypeRecordMapping(), and llvm::codeview::ContinuationRecordBuilder::writeMemberType().
|
overridevirtual |
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 126 of file TypeRecordMapping.cpp.
References llvm::codeview::TypeServer2Record::Age, llvm::codeview::ArgListRecord::ArgIndices, llvm::codeview::BuildInfoRecord::ArgIndices, llvm::codeview::ProcedureRecord::ArgumentList, llvm::codeview::MemberFunctionRecord::ArgumentList, assert(), llvm::codeview::MemberAttributes::Attrs, llvm::codeview::PointerRecord::Attrs, llvm::codeview::DataMemberRecord::Attrs, llvm::codeview::StaticDataMemberRecord::Attrs, llvm::codeview::EnumeratorRecord::Attrs, llvm::codeview::BaseClassRecord::Attrs, llvm::codeview::VirtualBaseClassRecord::Attrs, llvm::codeview::VirtualBaseClassRecord::BaseType, llvm::codeview::BitFieldRecord::BitOffset, llvm::codeview::BitFieldRecord::BitSize, llvm::codeview::Byte, llvm::codeview::ProcedureRecord::CallConv, llvm::codeview::MemberFunctionRecord::CallConv, llvm::codeview::MemberFunctionRecord::ClassType, llvm::codeview::MemberFuncIdRecord::ClassType, llvm::codeview::VFTableRecord::CompleteClass, llvm::codeview::MemberPointerInfo::ContainingType, llvm::codeview::ListContinuationRecord::ContinuationIndex, llvm::codeview::FieldListRecord::Data, llvm::codeview::ClassRecord::DerivationList, llvm::codeview::EC, llvm::codeview::ArrayRecord::ElementType, error, llvm::codeview::TagRecord::FieldList, llvm::codeview::DataMemberRecord::FieldOffset, llvm::codeview::MemberFuncIdRecord::FunctionType, llvm::codeview::FuncIdRecord::FunctionType, llvm::codeview::VFTableShapeRecord::getSlots(), llvm::codeview::TypeServer2Record::Guid, llvm::codeview::TagRecord::hasUniqueName(), I, llvm::codeview::StringIdRecord::Id, llvm::codeview::ArrayRecord::IndexType, llvm::codeview::PointerRecord::isPointerToMember(), llvm::codeview::UdtSourceLineRecord::LineNumber, llvm::codeview::UdtModSourceLineRecord::LineNumber, mapNameAndUniqueName(), llvm::codeview::TagRecord::MemberCount, llvm::codeview::PointerRecord::MemberInfo, llvm::codeview::OverloadedMethodRecord::MethodList, llvm::codeview::VFTableRecord::MethodNames, llvm::codeview::MethodOverloadListRecord::Methods, llvm::codeview::LabelRecord::Mode, llvm::codeview::ModifierRecord::ModifiedType, llvm::codeview::ModifierRecord::Modifiers, llvm::codeview::UdtModSourceLineRecord::Module, N, Name, llvm::codeview::MemberFuncIdRecord::Name, llvm::codeview::NestedTypeRecord::Name, llvm::codeview::ArrayRecord::Name, llvm::codeview::TagRecord::Name, llvm::codeview::TypeServer2Record::Name, llvm::codeview::FuncIdRecord::Name, llvm::codeview::OverloadedMethodRecord::Name, llvm::codeview::DataMemberRecord::Name, llvm::codeview::StaticDataMemberRecord::Name, llvm::codeview::EnumeratorRecord::Name, llvm::codeview::OverloadedMethodRecord::NumOverloads, llvm::codeview::BaseClassRecord::Offset, llvm::codeview::ProcedureRecord::Options, llvm::codeview::MemberFunctionRecord::Options, llvm::codeview::TagRecord::Options, llvm::codeview::VFTableRecord::OverriddenVFTable, llvm::codeview::ProcedureRecord::ParameterCount, llvm::codeview::MemberFunctionRecord::ParameterCount, llvm::codeview::FuncIdRecord::ParentScope, llvm::codeview::PrecompRecord::PrecompFilePath, llvm::codeview::PointerRecord::ReferentType, llvm::codeview::MemberPointerInfo::Representation, llvm::codeview::ProcedureRecord::ReturnType, llvm::codeview::MemberFunctionRecord::ReturnType, llvm::codeview::PrecompRecord::Signature, llvm::codeview::EndPrecompRecord::Signature, Size, llvm::ArrayRef< T >::size(), llvm::codeview::ArrayRecord::Size, llvm::codeview::ClassRecord::Size, llvm::codeview::UnionRecord::Size, llvm::codeview::VFTableShapeRecord::Slots, llvm::codeview::UdtSourceLineRecord::SourceFile, llvm::codeview::UdtModSourceLineRecord::SourceFile, llvm::codeview::PrecompRecord::StartTypeIndex, llvm::codeview::StringIdRecord::String, llvm::codeview::StringListRecord::StringIndices, llvm::Error::success(), llvm::codeview::MemberFunctionRecord::ThisPointerAdjustment, llvm::codeview::MemberFunctionRecord::ThisType, llvm::codeview::CVRecord< Kind >::Type, llvm::codeview::NestedTypeRecord::Type, llvm::codeview::BitFieldRecord::Type, llvm::codeview::DataMemberRecord::Type, llvm::codeview::StaticDataMemberRecord::Type, llvm::codeview::VFPtrRecord::Type, llvm::codeview::BaseClassRecord::Type, llvm::codeview::PrecompRecord::TypesCount, llvm::codeview::UdtSourceLineRecord::UDT, llvm::codeview::UdtModSourceLineRecord::UDT, llvm::codeview::EnumRecord::UnderlyingType, llvm::codeview::TagRecord::UniqueName, llvm::codeview::EnumeratorRecord::Value, llvm::codeview::VirtualBaseClassRecord::VBPtrOffset, llvm::codeview::VirtualBaseClassRecord::VBPtrType, llvm::codeview::VFTableRecord::VFPtrOffset, visitKnownMember(), visitKnownRecord(), llvm::codeview::VirtualBaseClassRecord::VTableIndex, and llvm::codeview::ClassRecord::VTableShape.
Referenced by TypeRecordMapping(), and llvm::codeview::ContinuationRecordBuilder::writeMemberType().
Paired begin/end actions for all types.
Receives all record data, including the fixed-length record prefix. visitTypeBegin() should return the type of the Record, or an error if it cannot be determined. Exactly one of the two visitTypeBegin methods will be called, depending on whether records are being visited sequentially or randomly. An implementation should be prepared to handle both (or assert if it can't handle random access visitation).
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 84 of file TypeRecordMapping.cpp.
References assert(), error, llvm::codeview::MaxRecordLength, llvm::Error::success(), and llvm::codeview::CVRecord< Kind >::Type.
Referenced by llvm::codeview::ContinuationRecordBuilder::begin(), llvm::codeview::SimpleTypeSerializer::serialize(), and TypeRecordMapping().
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 100 of file TypeRecordMapping.cpp.
References assert(), error, and llvm::Error::success().
Referenced by llvm::codeview::ContinuationRecordBuilder::end(), llvm::codeview::SimpleTypeSerializer::serialize(), and TypeRecordMapping().