LLVM  4.0.0
Classes | Public Member Functions | List of all members
llvm::codeview::TypeSerializer Class Reference

#include <TypeSerializer.h>

Inheritance diagram for llvm::codeview::TypeSerializer:
[legend]
Collaboration diagram for llvm::codeview::TypeSerializer:
[legend]

Public Member Functions

 TypeSerializer (BumpPtrAllocator &Storage)
 
ArrayRef< MutableArrayRef
< uint8_t > > 
records () const
 
TypeIndex getLastTypeIndex () const
 
TypeIndex insertRecordBytes (MutableArrayRef< uint8_t > Record)
 
Expected< TypeIndexvisitTypeEndGetIndex (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
 

Detailed Description

Definition at line 29 of file TypeSerializer.h.

Constructor & Destructor Documentation

TypeSerializer::TypeSerializer ( BumpPtrAllocator Storage)
explicit

Definition at line 86 of file TypeSerializer.cpp.

Member Function Documentation

TypeIndex TypeSerializer::getLastTypeIndex ( ) const

Definition at line 99 of file TypeSerializer.cpp.

TypeIndex TypeSerializer::insertRecordBytes ( MutableArrayRef< uint8_t >  Record)
ArrayRef< MutableArrayRef< uint8_t > > TypeSerializer::records ( ) const
Error TypeSerializer::visitMemberBegin ( CVMemberRecord Record)
overridevirtual
Error TypeSerializer::visitMemberEnd ( CVMemberRecord Record)
overridevirtual
Error TypeSerializer::visitTypeBegin ( CVType Record)
overridevirtual

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

Error TypeSerializer::visitTypeEnd ( CVType Record)
overridevirtual
Expected< TypeIndex > TypeSerializer::visitTypeEndGetIndex ( CVType Record)

The documentation for this class was generated from the following files: