|
LLVM
4.0.0
|
#include <TypeSerializer.h>
Public Member Functions | |
| TypeSerializer (BumpPtrAllocator &Storage) | |
| ArrayRef< MutableArrayRef < uint8_t > > | records () const |
| TypeIndex | getLastTypeIndex () const |
| TypeIndex | insertRecordBytes (MutableArrayRef< uint8_t > Record) |
| Expected< TypeIndex > | visitTypeEndGetIndex (CVType &Record) |
| 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 | visitUnknownMember (CVMemberRecord &Record) |
| MEMBER_RECORD_ALIAS (LF_IVBCLASS, 0x1402, IndirectVirtualBaseClass, VirtualBaseClass) CV_TYPE(LF_NULLLEAF | |
Definition at line 29 of file TypeSerializer.h.
|
explicit |
Definition at line 86 of file TypeSerializer.cpp.
| TypeIndex TypeSerializer::getLastTypeIndex | ( | ) | const |
Definition at line 99 of file TypeSerializer.cpp.
| TypeIndex TypeSerializer::insertRecordBytes | ( | MutableArrayRef< uint8_t > | Record | ) |
Definition at line 101 of file TypeSerializer.cpp.
References assert(), and llvm::msf::StreamWriter::getOffset().
Referenced by llvm::codeview::TypeTableBuilder::writeSerializedRecord().
| ArrayRef< MutableArrayRef< uint8_t > > TypeSerializer::records | ( | ) | const |
Definition at line 95 of file TypeSerializer.cpp.
Referenced by llvm::codeview::TypeTableBuilder::empty(), llvm::codeview::FieldListRecordBuilder::end(), llvm::codeview::TypeTableBuilder::ForEachRecord(), and llvm::codeview::TypeTableBuilder::records().
|
overridevirtual |
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 171 of file TypeSerializer.cpp.
References assert(), llvm::codeview::EC, llvm::Optional< T >::hasValue(), llvm::codeview::CVMemberRecord::Kind, llvm::Error::success(), and llvm::codeview::TypeRecordMapping::visitMemberBegin().
Referenced by llvm::codeview::FieldListRecordBuilder::writeMemberType().
|
overridevirtual |
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 182 of file TypeSerializer.cpp.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), assert(), llvm::codeview::CS, llvm::codeview::CVMemberRecord::Data, llvm::msf::MutableByteStream::data(), llvm::MutableArrayRef< T >::data(), llvm::MutableArrayRef< T >::drop_front(), llvm::codeview::EC, llvm::msf::StreamWriter::getOffset(), llvm::codeview::MaxRecordLength, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::codeview::RecordPrefix::RecordLen, llvm::Optional< T >::reset(), llvm::msf::StreamWriter::setOffset(), llvm::Error::success(), llvm::MutableArrayRef< T >::take_front(), llvm::codeview::TypeRecordMapping::visitMemberEnd(), llvm::msf::StreamWriter::writeBytes(), llvm::msf::StreamWriter::writeEnum(), and llvm::msf::StreamWriter::writeInteger().
Referenced by llvm::codeview::FieldListRecordBuilder::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.
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 108 of file TypeSerializer.cpp.
References assert(), llvm::codeview::EC, llvm::msf::StreamWriter::getOffset(), llvm::codeview::CVRecord< Kind >::kind(), llvm::Error::success(), and llvm::codeview::TypeRecordMapping::visitTypeBegin().
Referenced by llvm::codeview::FieldListRecordBuilder::begin(), and llvm::codeview::TypeTableBuilder::writeKnownType().
Reimplemented from llvm::codeview::TypeVisitorCallbacks.
Definition at line 164 of file TypeSerializer.cpp.
References llvm::Error::success(), and visitTypeEndGetIndex().
Referenced by llvm::codeview::FieldListRecordBuilder::end().
Definition at line 122 of file TypeSerializer.cpp.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), assert(), llvm::SmallVectorImpl< T >::clear(), llvm::codeview::Copy, llvm::codeview::EC, llvm::codeview::TypeIndex::getIndex(), llvm::codeview::RecordPrefix::RecordLen, llvm::reverse(), llvm::msf::StreamWriter::setOffset(), llvm::codeview::TypeRecordMapping::visitTypeEnd(), and X.
Referenced by visitTypeEnd(), and llvm::codeview::TypeTableBuilder::writeKnownType().
1.8.6