LLVM 22.0.0git
llvm::codeview::TypeRecordMapping Class Reference

#include "llvm/DebugInfo/CodeView/TypeRecordMapping.h"

Inheritance diagram for llvm::codeview::TypeRecordMapping:
[legend]

Public Member Functions

 TypeRecordMapping (BinaryStreamReader &Reader)
 TypeRecordMapping (BinaryStreamWriter &Writer)
 TypeRecordMapping (CodeViewRecordStreamer &Streamer)
Error visitTypeBegin (CVType &Record) override
 Paired begin/end actions for all types.
Error visitTypeBegin (CVType &Record, TypeIndex Index) override
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.
virtual Error visitUnknownMember (CVMemberRecord &Record)

Detailed Description

Definition at line 27 of file TypeRecordMapping.h.

Constructor & Destructor Documentation

◆ TypeRecordMapping() [1/3]

llvm::codeview::TypeRecordMapping::TypeRecordMapping ( BinaryStreamReader & Reader)
inlineexplicit

Definition at line 29 of file TypeRecordMapping.h.

◆ TypeRecordMapping() [2/3]

llvm::codeview::TypeRecordMapping::TypeRecordMapping ( BinaryStreamWriter & Writer)
inlineexplicit

Definition at line 30 of file TypeRecordMapping.h.

◆ TypeRecordMapping() [3/3]

llvm::codeview::TypeRecordMapping::TypeRecordMapping ( CodeViewRecordStreamer & Streamer)
inlineexplicit

Definition at line 31 of file TypeRecordMapping.h.

Member Function Documentation

◆ visitMemberBegin()

Error TypeRecordMapping::visitMemberBegin ( CVMemberRecord & Record)
overridevirtual

◆ visitMemberEnd()

Error TypeRecordMapping::visitMemberEnd ( CVMemberRecord & Record)
overridevirtual

◆ visitTypeBegin() [1/2]

Error TypeRecordMapping::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. 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 232 of file TypeRecordMapping.cpp.

References llvm::ArrayRef(), assert(), error, llvm::codeview::CVRecord< Kind >::kind(), LeafTypeNames, llvm::codeview::CVRecord< Kind >::length(), llvm::codeview::MaxRecordLength, and llvm::Error::success().

Referenced by llvm::codeview::SimpleTypeSerializer::serialize(), and visitTypeBegin().

◆ visitTypeBegin() [2/2]

Error TypeRecordMapping::visitTypeBegin ( CVType & Record,
TypeIndex Index )
overridevirtual

◆ visitTypeEnd()

Error TypeRecordMapping::visitTypeEnd ( CVType & Record)
overridevirtual

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