class ASTRecordWriter

Declaration

class ASTRecordWriter : public DataStreamBasicWriter { /* full declaration omitted */ };

Description

An object for streaming information to a record.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:27

Inherits from: DataStreamBasicWriter

Member Variables

private clang::ASTWriter* Writer
private ASTWriter::RecordDataImpl* Record
private SmallVector<clang::Stmt*, 16> StmtsToEmit
Statements that we've encountered while serializing a declaration or type.
private SmallVector<unsigned int, 8> OffsetIndices
Indices of record elements that describe offsets within the bitcode. These will be converted to offsets relative to the current record when emitted.

Method Overview

Methods

ASTRecordWriter(clang::ASTWriter& W,
                ASTWriter::RecordDataImpl& Record)

Description

Construct a ASTRecordWriter that uses the default encoding scheme.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:61

Parameters

clang::ASTWriter& W
ASTWriter::RecordDataImpl& Record

ASTRecordWriter(clang::ASTRecordWriter& Parent,
                ASTWriter::RecordDataImpl& Record)

Description

Construct a ASTRecordWriter that uses the same encoding scheme as another ASTRecordWriter.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:66

Parameters

clang::ASTRecordWriter& Parent
ASTWriter::RecordDataImpl& Record

ASTRecordWriter(const clang::ASTRecordWriter&)

Description

Copying an ASTRecordWriter is almost certainly a bug.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:71

Parameters

const clang::ASTRecordWriter&

void AddAPFloat(const llvm::APFloat& Value)

Description

Emit a floating-point value.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:172

Parameters

const llvm::APFloat& Value

void AddAPInt(const llvm::APInt& Value)

Description

Emit an integral value.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:162

Parameters

const llvm::APInt& Value

void AddAPSInt(const llvm::APSInt& Value)

Description

Emit a signed integral value.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:167

Parameters

const llvm::APSInt& Value

void AddAPValue(const clang::APValue& Value)

Description

Emit an APvalue.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:175

Parameters

const clang::APValue& Value

void AddASTTemplateArgumentListInfo(
    const clang::ASTTemplateArgumentListInfo*
        ASTTemplArgList)

Description

Emits an AST template argument list info.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:222

Parameters

const clang::ASTTemplateArgumentListInfo* ASTTemplArgList

void AddAttr(const clang::Attr* A)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:303

Parameters

const clang::Attr* A

void AddAttributes(
    ArrayRef<const clang::Attr*> Attrs)

Description

Emit a list of attributes.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:306

Parameters

ArrayRef<const clang::Attr*> Attrs

void AddCXXBaseSpecifier(
    const clang::CXXBaseSpecifier& Base)

Description

Emit a C++ base specifier.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:195

Parameters

const clang::CXXBaseSpecifier& Base

void AddCXXBaseSpecifiers(
    ArrayRef<clang::CXXBaseSpecifier> Bases)

Description

Emit a set of C++ base specifiers.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:198

Parameters

ArrayRef<clang::CXXBaseSpecifier> Bases

void AddCXXCtorInitializers(
    ArrayRef<clang::CXXCtorInitializer*>
        CtorInits)

Description

Emit a CXXCtorInitializer array.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:272

Parameters

ArrayRef<clang::CXXCtorInitializer*> CtorInits

void AddCXXDefinitionData(
    const clang::CXXRecordDecl* D)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:274

Parameters

const clang::CXXRecordDecl* D

void AddCXXTemporary(
    const clang::CXXTemporary* Temp)

Description

Emit a CXXTemporary.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:192

Parameters

const clang::CXXTemporary* Temp

void AddDeclRef(const clang::Decl* D)

Description

Emit a reference to a declaration.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:226

Parameters

const clang::Decl* D

void AddDeclarationName(
    clang::DeclarationName Name)

Description

Emit a declaration name.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:234

Parameters

clang::DeclarationName Name

void AddDeclarationNameInfo(
    const clang::DeclarationNameInfo& NameInfo)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:240

Parameters

const clang::DeclarationNameInfo& NameInfo

void AddDeclarationNameLoc(
    const clang::DeclarationNameLoc& DNLoc,
    clang::DeclarationName Name)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:238

Parameters

const clang::DeclarationNameLoc& DNLoc
clang::DeclarationName Name

void AddFunctionDefinition(
    const clang::FunctionDecl* FD)

Description

Add a definition for the given function to the queue of statements to emit.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:134

Parameters

const clang::FunctionDecl* FD

void AddIdentifierRef(
    const clang::IdentifierInfo* II)

Description

Emit a reference to an identifier.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:178

Parameters

const clang::IdentifierInfo* II

void AddNestedNameSpecifier(
    clang::NestedNameSpecifier* NNS)

Description

Emit a nested name specifier.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:245

Parameters

clang::NestedNameSpecifier* NNS

void AddNestedNameSpecifierLoc(
    clang::NestedNameSpecifierLoc NNS)

Description

Emit a nested name specifier with source-location information.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:250

Parameters

clang::NestedNameSpecifierLoc NNS

void AddOffset(uint64_t BitOffset)

Description

Add a bit offset into the record. This will be converted into an offset relative to the current record when emitted.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:110

Parameters

uint64_t BitOffset

void AddPath(llvm::StringRef Path)

Description

Emit a path.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:293

Parameters

llvm::StringRef Path

void AddQualifierInfo(
    const clang::QualifierInfo& Info)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:242

Parameters

const clang::QualifierInfo& Info

void AddSelectorRef(clang::Selector S)

Description

Emit a Selector (which is a smart pointer reference).

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:186

Parameters

clang::Selector S

void AddSourceLocation(
    clang::SourceLocation Loc,
    clang::ASTRecordWriter::LocSeq* Seq = nullptr)

Description

Emit a source location.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:137

Parameters

clang::SourceLocation Loc
clang::ASTRecordWriter::LocSeq* Seq = nullptr

void AddSourceRange(
    clang::SourceRange Range,
    clang::ASTRecordWriter::LocSeq* Seq = nullptr)

Description

Emit a source range.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:145

Parameters

clang::SourceRange Range
clang::ASTRecordWriter::LocSeq* Seq = nullptr

void AddStmt(clang::Stmt* S)

Description

Add the given statement or expression to the queue of statements to emit. This routine should be used when emitting types and declarations that have expressions as part of their formulation. Once the type or declaration has been written, Emit() will write the corresponding statements just after the record.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:122

Parameters

clang::Stmt* S

void AddString(llvm::StringRef Str)

Description

Emit a string.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:288

Parameters

llvm::StringRef Str

void AddTemplateArgument(
    const clang::TemplateArgument& Arg)

Description

Emit a template argument.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:258

Parameters

const clang::TemplateArgument& Arg

void AddTemplateArgumentList(
    const clang::TemplateArgumentList*
        TemplateArgs)

Description

Emit a template argument list.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:266

Parameters

const clang::TemplateArgumentList* TemplateArgs

void AddTemplateArgumentLoc(
    const clang::TemplateArgumentLoc& Arg)

Description

Emits a template argument location.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:219

Parameters

const clang::TemplateArgumentLoc& Arg

void AddTemplateArgumentLocInfo(
    TemplateArgument::ArgKind Kind,
    const clang::TemplateArgumentLocInfo& Arg)

Description

Emits a template argument location info.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:215

Parameters

TemplateArgument::ArgKind Kind
const clang::TemplateArgumentLocInfo& Arg

void AddTemplateName(clang::TemplateName Name)

Description

Emit a template name.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:253

Parameters

clang::TemplateName Name

void AddTemplateParameterList(
    const clang::TemplateParameterList*
        TemplateParams)

Description

Emit a template parameter list.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:263

Parameters

const clang::TemplateParameterList* TemplateParams

void AddTypeLoc(
    clang::TypeLoc TL,
    clang::ASTRecordWriter::LocSeq* Seq = nullptr)

Description

Emits source location information for a type. Does not emit the type.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:212

Parameters

clang::TypeLoc TL
clang::ASTRecordWriter::LocSeq* Seq = nullptr

void AddTypeRef(clang::QualType T)

Description

Emit a reference to a type.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:201

Parameters

clang::QualType T

void AddTypeSourceInfo(
    clang::TypeSourceInfo* TInfo)

Description

Emits a reference to a declarator info.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:209

Parameters

clang::TypeSourceInfo* TInfo

void AddUnresolvedSet(
    const clang::ASTUnresolvedSet& Set)

Description

Emit a UnresolvedSet structure.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:269

Parameters

const clang::ASTUnresolvedSet& Set

void AddVarDeclInit(const clang::VarDecl* VD)

Description

Emit information about the initializer of a VarDecl.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:277

Parameters

const clang::VarDecl* VD

void AddVersionTuple(
    const llvm::VersionTuple& Version)

Description

Emit a version tuple.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:298

Parameters

const llvm::VersionTuple& Version

uint64_t Emit(unsigned int Code,
              unsigned int Abbrev = 0)

Description

Emit the record to the stream, followed by its substatements, and return its offset.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:92

Parameters

unsigned int Code
unsigned int Abbrev = 0

uint64_t EmitStmt(unsigned int Code,
                  unsigned int Abbrev = 0)

Description

Emit the record to the stream, preceded by its substatements.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:101

Parameters

unsigned int Code
unsigned int Abbrev = 0

void FlushStmts()

Description

Flush all of the statements and expressions that have been added to the queue via AddStmt().

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:45

void FlushSubStmts()

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:46

void PrepareToEmit(uint64_t MyOffset)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:48

Parameters

uint64_t MyOffset

template <typename InputIterator>
void append(InputIterator begin,
            InputIterator end)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:81

Templates

InputIterator

Parameters

InputIterator begin
InputIterator end

bool empty() const

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:84

ASTWriter::RecordDataImpl& getRecordData() const

Description

Extract the underlying record storage.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:75

void push_back(uint64_t N)

Description

Minimal vector-like interface. @ {

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:79

Parameters

uint64_t N

size_t size() const

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:85

void writeBTFTypeTagAttr(
    const clang::BTFTypeTagAttr* A)

Description

Write an BTFTypeTagAttr object.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:130

Parameters

const clang::BTFTypeTagAttr* A

void writeBool(bool Value)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:149

Parameters

bool Value

void writeDeclRef(const clang::Decl* D)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:229

Parameters

const clang::Decl* D

void writeIdentifier(
    const clang::IdentifierInfo* II)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:181

Parameters

const clang::IdentifierInfo* II

void writeOMPChildren(clang::OMPChildren* Data)

Description

Writes data related to the OpenMP directives.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:285

Parameters

clang::OMPChildren* Data

void writeOMPClause(clang::OMPClause* C)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:282

Parameters

clang::OMPClause* C

void writeOMPTraitInfo(
    const clang::OMPTraitInfo* TI)

Description

Write an OMPTraitInfo object.

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:280

Parameters

const clang::OMPTraitInfo* TI

void writeQualType(clang::QualType T)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:204

Parameters

clang::QualType T

void writeSelector(clang::Selector sel)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:187

Parameters

clang::Selector sel

void writeSourceLocation(
    clang::SourceLocation Loc)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:140

Parameters

clang::SourceLocation Loc

void writeStmtRef(const clang::Stmt* S)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:125

Parameters

const clang::Stmt* S

void writeUInt32(uint32_t Value)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:153

Parameters

uint32_t Value

void writeUInt64(uint64_t Value)

Declared at: clang/include/clang/Serialization/ASTRecordWriter.h:157

Parameters

uint64_t Value