clang 22.0.0git
clang::ASTWriter Class Reference

Writes an AST file containing the contents of a translation unit. More...

#include "clang/Serialization/ASTWriter.h"

Inheritance diagram for clang::ASTWriter:
[legend]

Public Types

using RecordData = SmallVector<uint64_t, 64>
using RecordDataImpl = SmallVectorImpl<uint64_t>
using RecordDataRef = ArrayRef<uint64_t>

Public Member Functions

 ASTWriter (llvm::BitstreamWriter &Stream, SmallVectorImpl< char > &Buffer, ModuleCache &ModCache, const CodeGenOptions &CodeGenOpts, ArrayRef< std::shared_ptr< ModuleFileExtension > > Extensions, bool IncludeTimestamps=true, bool BuildingImplicitModule=false, bool GeneratingReducedBMI=false)
 Create a new precompiled header writer that outputs to the given bitstream.
 ~ASTWriter () override
const LangOptionsgetLangOpts () const
const CodeGenOptionsgetCodeGenOpts () const
time_t getTimestampForOutput (const FileEntry *E) const
 Get a timestamp for output into the AST file.
ASTFileSignature WriteAST (llvm::PointerUnion< Sema *, Preprocessor * > Subject, StringRef OutputFile, Module *WritingModule, StringRef isysroot, bool ShouldCacheASTInMemory=false)
 Write a precompiled header or a module with the AST produced by the Sema object, or a dependency scanner module with the preprocessor state produced by the Preprocessor object.
void AddToken (const Token &Tok, RecordDataImpl &Record)
 Emit a token.
void AddAlignPackInfo (const Sema::AlignPackInfo &Info, RecordDataImpl &Record)
 Emit a AlignPackInfo.
void AddFileID (FileID FID, RecordDataImpl &Record)
 Emit a FileID.
void AddSourceLocation (SourceLocation Loc, RecordDataImpl &Record)
 Emit a source location.
SourceLocationEncoding::RawLocEncoding getRawSourceLocationEncoding (SourceLocation Loc)
 Return the raw encodings for source locations.
void AddSourceRange (SourceRange Range, RecordDataImpl &Record)
 Emit a source range.
void AddIdentifierRef (const IdentifierInfo *II, RecordDataImpl &Record)
 Emit a reference to an identifier.
serialization::SelectorID getSelectorRef (Selector Sel)
 Get the unique number used to refer to the given selector.
serialization::IdentifierID getIdentifierRef (const IdentifierInfo *II)
 Get the unique number used to refer to the given identifier.
serialization::MacroID getMacroRef (MacroInfo *MI, const IdentifierInfo *Name)
 Get the unique number used to refer to the given macro.
uint32_t getMacroDirectivesOffset (const IdentifierInfo *Name)
void AddTypeRef (ASTContext &Context, QualType T, RecordDataImpl &Record)
 Emit a reference to a type.
serialization::TypeID GetOrCreateTypeID (ASTContext &Context, QualType T)
 Force a type to be emitted and get its ID.
const DeclgetFirstLocalDecl (const Decl *D)
 Find the first local declaration of a given local redeclarable decl.
bool IsLocalDecl (const Decl *D)
 Is this a local declaration (that is, one that will be written to our AST file)?
void AddLookupOffsets (const LookupBlockOffsets &Offsets, RecordDataImpl &Record)
void AddDeclRef (const Decl *D, RecordDataImpl &Record)
 Emit a reference to a declaration.
void AddEmittedDeclRef (const Decl *D, RecordDataImpl &Record)
LocalDeclID GetDeclRef (const Decl *D)
 Force a declaration to be emitted and get its local ID to the module file been writing.
LocalDeclID getDeclID (const Decl *D)
 Determine the local declaration ID of an already-emitted declaration.
bool wasDeclEmitted (const Decl *D) const
 Whether or not the declaration got emitted.
unsigned getAnonymousDeclarationNumber (const NamedDecl *D)
void AddString (StringRef Str, RecordDataImpl &Record)
 Add a string to the given record.
void AddStringBlob (StringRef Str, RecordDataImpl &Record, SmallVectorImpl< char > &Blob)
bool PreparePathForOutput (SmallVectorImpl< char > &Path)
 Convert a path from this build process into one that is appropriate for emission in the module file.
void AddPath (StringRef Path, RecordDataImpl &Record)
 Add a path to the given record.
void AddPathBlob (StringRef Str, RecordDataImpl &Record, SmallVectorImpl< char > &Blob)
void EmitRecordWithPath (unsigned Abbrev, RecordDataRef Record, StringRef Path)
 Emit the current record with the given path as a blob.
void AddVersionTuple (const VersionTuple &Version, RecordDataImpl &Record)
 Add a version tuple to the given record.
unsigned getLocalOrImportedSubmoduleID (const Module *Mod)
 Retrieve or create a submodule ID for this module, or return 0 if the submodule is neither local (a submodle of the currently-written module) nor from an imported module.
void SetIdentifierOffset (const IdentifierInfo *II, uint32_t Offset)
 Note that the identifier II occurs at the given offset within the identifier table.
void SetSelectorOffset (Selector Sel, uint32_t Offset)
 Note that the selector Sel occurs at the given offset within the method pool/selector table.
unsigned RecordSwitchCaseID (SwitchCase *S)
 Record an ID for the given switch-case statement.
unsigned getSwitchCaseID (SwitchCase *S)
 Retrieve the ID for the given switch-case statement.
void ClearSwitchCaseIDs ()
unsigned getTypeExtQualAbbrev () const
unsigned getDeclParmVarAbbrev () const
unsigned getDeclRecordAbbrev () const
unsigned getDeclTypedefAbbrev () const
unsigned getDeclVarAbbrev () const
unsigned getDeclFieldAbbrev () const
unsigned getDeclEnumAbbrev () const
unsigned getDeclObjCIvarAbbrev () const
unsigned getDeclCXXMethodAbbrev (FunctionDecl::TemplatedKind Kind) const
unsigned getDeclTemplateTypeParmAbbrev () const
unsigned getDeclUsingShadowAbbrev () const
unsigned getDeclRefExprAbbrev () const
unsigned getCharacterLiteralAbbrev () const
unsigned getIntegerLiteralAbbrev () const
unsigned getExprImplicitCastAbbrev () const
unsigned getBinaryOperatorAbbrev () const
unsigned getCompoundAssignOperatorAbbrev () const
unsigned getCallExprAbbrev () const
unsigned getCXXOperatorCallExprAbbrev ()
unsigned getCXXMemberCallExprAbbrev ()
unsigned getCompoundStmtAbbrev () const
bool hasChain () const
ASTReadergetChain () const
bool isWritingModule () const
bool isWritingStdCXXNamedModules () const
bool isWritingStdCXXHeaderUnit () const
bool isGeneratingReducedBMI () const
bool getDoneWritingDeclsAndTypes () const
bool isDeclPredefined (const Decl *D) const
void handleVTable (CXXRecordDecl *RD)
void addTouchedModuleFile (serialization::ModuleFile *)
Public Member Functions inherited from clang::ASTDeserializationListener
virtual ~ASTDeserializationListener ()
virtual void DeclRead (GlobalDeclID ID, const Decl *D)
 A decl was deserialized from the AST file.
virtual void ModuleImportRead (serialization::SubmoduleID ID, SourceLocation ImportLoc)
 A module import was read from the AST file.
Public Member Functions inherited from clang::ASTMutationListener
virtual ~ASTMutationListener ()

Friends

class ASTDeclWriter
class ASTRecordWriter

Detailed Description

Writes an AST file containing the contents of a translation unit.

The ASTWriter class produces a bitstream containing the serialized representation of a given abstract syntax tree and its supporting data structures. This bitstream can be de-serialized via an instance of the ASTReader class.

Definition at line 96 of file ASTWriter.h.

Member Typedef Documentation

◆ RecordData

Definition at line 102 of file ASTWriter.h.

◆ RecordDataImpl

Definition at line 103 of file ASTWriter.h.

◆ RecordDataRef

Definition at line 104 of file ASTWriter.h.

Constructor & Destructor Documentation

◆ ASTWriter()

ASTWriter::ASTWriter ( llvm::BitstreamWriter & Stream,
SmallVectorImpl< char > & Buffer,
ModuleCache & ModCache,
const CodeGenOptions & CodeGenOpts,
ArrayRef< std::shared_ptr< ModuleFileExtension > > Extensions,
bool IncludeTimestamps = true,
bool BuildingImplicitModule = false,
bool GeneratingReducedBMI = false )

Create a new precompiled header writer that outputs to the given bitstream.

Definition at line 5411 of file ASTWriter.cpp.

◆ ~ASTWriter()

ASTWriter::~ASTWriter ( )
overridedefault

Member Function Documentation

◆ AddAlignPackInfo()

void ASTWriter::AddAlignPackInfo ( const Sema::AlignPackInfo & Info,
RecordDataImpl & Record )

Emit a AlignPackInfo.

Definition at line 6605 of file ASTWriter.cpp.

References clang::Sema::AlignPackInfo::getRawEncoding().

◆ AddDeclRef()

void ASTWriter::AddDeclRef ( const Decl * D,
RecordDataImpl & Record )

Emit a reference to a declaration.

Definition at line 6900 of file ASTWriter.cpp.

References GetDeclRef().

Referenced by AddEmittedDeclRef().

◆ AddEmittedDeclRef()

void ASTWriter::AddEmittedDeclRef ( const Decl * D,
RecordDataImpl & Record )

Definition at line 6893 of file ASTWriter.cpp.

References AddDeclRef(), and wasDeclEmitted().

Referenced by AddLazyVectorEmiitedDecls().

◆ AddFileID()

void ASTWriter::AddFileID ( FileID FID,
RecordDataImpl & Record )

Emit a FileID.

Definition at line 6673 of file ASTWriter.cpp.

◆ AddIdentifierRef()

void ASTWriter::AddIdentifierRef ( const IdentifierInfo * II,
RecordDataImpl & Record )

Emit a reference to an identifier.

Definition at line 6714 of file ASTWriter.cpp.

References getIdentifierRef().

Referenced by AddToken().

◆ AddLookupOffsets()

◆ AddPath()

void ASTWriter::AddPath ( StringRef Path,
RecordDataImpl & Record )

Add a path to the given record.

Definition at line 5349 of file ASTWriter.cpp.

References AddString(), and PreparePathForOutput().

◆ AddPathBlob()

void ASTWriter::AddPathBlob ( StringRef Str,
RecordDataImpl & Record,
SmallVectorImpl< char > & Blob )

Definition at line 5355 of file ASTWriter.cpp.

References AddStringBlob(), and PreparePathForOutput().

◆ AddSourceLocation()

void ASTWriter::AddSourceLocation ( SourceLocation Loc,
RecordDataImpl & Record )

Emit a source location.

Definition at line 6700 of file ASTWriter.cpp.

References getRawSourceLocationEncoding().

Referenced by AddSourceRange(), and AddToken().

◆ AddSourceRange()

void ASTWriter::AddSourceRange ( SourceRange Range,
RecordDataImpl & Record )

Emit a source range.

Definition at line 6705 of file ASTWriter.cpp.

References AddSourceLocation().

◆ AddString()

void ASTWriter::AddString ( StringRef Str,
RecordDataImpl & Record )

Add a string to the given record.

Definition at line 5316 of file ASTWriter.cpp.

Referenced by AddPath(), and AddToken().

◆ AddStringBlob()

void ASTWriter::AddStringBlob ( StringRef Str,
RecordDataImpl & Record,
SmallVectorImpl< char > & Blob )

Definition at line 5321 of file ASTWriter.cpp.

Referenced by AddPathBlob().

◆ AddToken()

void ASTWriter::AddToken ( const Token & Tok,
RecordDataImpl & Record )

Emit a token.

Definition at line 5270 of file ASTWriter.cpp.

References AddIdentifierRef(), AddSourceLocation(), AddString(), AddToken(), clang::T, and Tok.

Referenced by AddToken().

◆ addTouchedModuleFile()

void ASTWriter::addTouchedModuleFile ( serialization::ModuleFile * MF)

Definition at line 4091 of file ASTWriter.cpp.

◆ AddTypeRef()

void ASTWriter::AddTypeRef ( ASTContext & Context,
QualType T,
RecordDataImpl & Record )

Emit a reference to a type.

Definition at line 6833 of file ASTWriter.cpp.

References GetOrCreateTypeID(), and clang::T.

◆ AddVersionTuple()

void ASTWriter::AddVersionTuple ( const VersionTuple & Version,
RecordDataImpl & Record )

Add a version tuple to the given record.

Definition at line 5369 of file ASTWriter.cpp.

◆ ClearSwitchCaseIDs()

void ASTWriter::ClearSwitchCaseIDs ( )

Definition at line 3073 of file ASTWriterStmt.cpp.

◆ EmitRecordWithPath()

void ASTWriter::EmitRecordWithPath ( unsigned Abbrev,
RecordDataRef Record,
StringRef Path )

Emit the current record with the given path as a blob.

Definition at line 5362 of file ASTWriter.cpp.

References PreparePathForOutput().

◆ getAnonymousDeclarationNumber()

◆ getBinaryOperatorAbbrev()

unsigned clang::ASTWriter::getBinaryOperatorAbbrev ( ) const
inline

Definition at line 888 of file ASTWriter.h.

◆ getCallExprAbbrev()

unsigned clang::ASTWriter::getCallExprAbbrev ( ) const
inline

Definition at line 892 of file ASTWriter.h.

◆ getChain()

ASTReader * clang::ASTWriter::getChain ( ) const
inline

Definition at line 899 of file ASTWriter.h.

Referenced by getRawSourceLocationEncoding().

◆ getCharacterLiteralAbbrev()

unsigned clang::ASTWriter::getCharacterLiteralAbbrev ( ) const
inline

Definition at line 885 of file ASTWriter.h.

◆ getCodeGenOpts()

const CodeGenOptions & clang::ASTWriter::getCodeGenOpts ( ) const
inline

Definition at line 699 of file ASTWriter.h.

◆ getCompoundAssignOperatorAbbrev()

unsigned clang::ASTWriter::getCompoundAssignOperatorAbbrev ( ) const
inline

Definition at line 889 of file ASTWriter.h.

◆ getCompoundStmtAbbrev()

unsigned clang::ASTWriter::getCompoundStmtAbbrev ( ) const
inline

Definition at line 896 of file ASTWriter.h.

◆ getCXXMemberCallExprAbbrev()

unsigned clang::ASTWriter::getCXXMemberCallExprAbbrev ( )
inline

Definition at line 894 of file ASTWriter.h.

◆ getCXXOperatorCallExprAbbrev()

unsigned clang::ASTWriter::getCXXOperatorCallExprAbbrev ( )
inline

Definition at line 893 of file ASTWriter.h.

◆ getDeclCXXMethodAbbrev()

◆ getDeclEnumAbbrev()

unsigned clang::ASTWriter::getDeclEnumAbbrev ( ) const
inline

Definition at line 860 of file ASTWriter.h.

◆ getDeclFieldAbbrev()

unsigned clang::ASTWriter::getDeclFieldAbbrev ( ) const
inline

Definition at line 859 of file ASTWriter.h.

◆ getDeclID()

LocalDeclID ASTWriter::getDeclID ( const Decl * D)

Determine the local declaration ID of an already-emitted declaration.

Definition at line 6945 of file ASTWriter.cpp.

References clang::Decl::getGlobalID(), and clang::Decl::isFromASTFile().

◆ getDeclObjCIvarAbbrev()

unsigned clang::ASTWriter::getDeclObjCIvarAbbrev ( ) const
inline

Definition at line 861 of file ASTWriter.h.

◆ getDeclParmVarAbbrev()

unsigned clang::ASTWriter::getDeclParmVarAbbrev ( ) const
inline

Definition at line 855 of file ASTWriter.h.

◆ getDeclRecordAbbrev()

unsigned clang::ASTWriter::getDeclRecordAbbrev ( ) const
inline

Definition at line 856 of file ASTWriter.h.

◆ GetDeclRef()

LocalDeclID ASTWriter::GetDeclRef ( const Decl * D)

Force a declaration to be emitted and get its local ID to the module file been writing.

Definition at line 6904 of file ASTWriter.cpp.

References clang::Decl::getGlobalID(), clang::Decl::getOwningModule(), clang::Module::getTopLevelModule(), clang::Decl::isFromASTFile(), isWritingStdCXXNamedModules(), and clang::Update.

Referenced by AddDeclRef(), and AddLazyVectorDecls().

◆ getDeclRefExprAbbrev()

unsigned clang::ASTWriter::getDeclRefExprAbbrev ( ) const
inline

Definition at line 884 of file ASTWriter.h.

◆ getDeclTemplateTypeParmAbbrev()

unsigned clang::ASTWriter::getDeclTemplateTypeParmAbbrev ( ) const
inline

Definition at line 879 of file ASTWriter.h.

◆ getDeclTypedefAbbrev()

unsigned clang::ASTWriter::getDeclTypedefAbbrev ( ) const
inline

Definition at line 857 of file ASTWriter.h.

◆ getDeclUsingShadowAbbrev()

unsigned clang::ASTWriter::getDeclUsingShadowAbbrev ( ) const
inline

Definition at line 882 of file ASTWriter.h.

◆ getDeclVarAbbrev()

unsigned clang::ASTWriter::getDeclVarAbbrev ( ) const
inline

Definition at line 858 of file ASTWriter.h.

◆ getDoneWritingDeclsAndTypes()

bool clang::ASTWriter::getDoneWritingDeclsAndTypes ( ) const
inline

Definition at line 913 of file ASTWriter.h.

Referenced by isLookupResultNotInteresting().

◆ getExprImplicitCastAbbrev()

unsigned clang::ASTWriter::getExprImplicitCastAbbrev ( ) const
inline

Definition at line 887 of file ASTWriter.h.

◆ getFirstLocalDecl()

const Decl * ASTWriter::getFirstLocalDecl ( const Decl * D)

Find the first local declaration of a given local redeclarable decl.

Definition at line 2212 of file ASTWriterDecl.cpp.

References clang::Decl::getCanonicalDecl(), clang::Decl::getPreviousDecl(), and IsLocalDecl().

◆ getIdentifierRef()

IdentifierID ASTWriter::getIdentifierRef ( const IdentifierInfo * II)

Get the unique number used to refer to the given identifier.

Definition at line 6718 of file ASTWriter.cpp.

Referenced by AddIdentifierRef().

◆ getIntegerLiteralAbbrev()

unsigned clang::ASTWriter::getIntegerLiteralAbbrev ( ) const
inline

Definition at line 886 of file ASTWriter.h.

◆ getLangOpts()

const LangOptions & ASTWriter::getLangOpts ( ) const

Definition at line 5429 of file ASTWriter.cpp.

Referenced by getLocalOrImportedSubmoduleID(), and isLookupResultNotInteresting().

◆ getLocalOrImportedSubmoduleID()

unsigned ASTWriter::getLocalOrImportedSubmoduleID ( const Module * Mod)

Retrieve or create a submodule ID for this module, or return 0 if the submodule is neither local (a submodle of the currently-written module) nor from an imported module.

Definition at line 2962 of file ASTWriter.cpp.

References getLangOpts(), and clang::Module::getTopLevelModule().

◆ getMacroDirectivesOffset()

uint32_t ASTWriter::getMacroDirectivesOffset ( const IdentifierInfo * Name)

Definition at line 6744 of file ASTWriter.cpp.

◆ getMacroRef()

MacroID ASTWriter::getMacroRef ( MacroInfo * MI,
const IdentifierInfo * Name )

Get the unique number used to refer to the given macro.

Definition at line 6728 of file ASTWriter.cpp.

References clang::MacroInfo::isBuiltinMacro().

◆ GetOrCreateTypeID()

TypeID ASTWriter::GetOrCreateTypeID ( ASTContext & Context,
QualType T )

Force a type to be emitted and get its ID.

Definition at line 6863 of file ASTWriter.cpp.

References clang::serialization::TypeIdx::getValue(), MakeTypeID(), and clang::T.

Referenced by AddTypeRef().

◆ getRawSourceLocationEncoding()

◆ getSelectorRef()

SelectorID ASTWriter::getSelectorRef ( Selector Sel)

Get the unique number used to refer to the given selector.

Definition at line 6752 of file ASTWriter.cpp.

References clang::Selector::getAsOpaquePtr().

◆ getSwitchCaseID()

unsigned ASTWriter::getSwitchCaseID ( SwitchCase * S)

Retrieve the ID for the given switch-case statement.

Definition at line 3068 of file ASTWriterStmt.cpp.

◆ getTimestampForOutput()

time_t ASTWriter::getTimestampForOutput ( const FileEntry * E) const

Get a timestamp for output into the AST file.

The actual timestamp of the specified file may be ignored if we have been instructed to not include timestamps in the output file.

Definition at line 5434 of file ASTWriter.cpp.

References clang::FileEntry::getModificationTime().

◆ getTypeExtQualAbbrev()

unsigned clang::ASTWriter::getTypeExtQualAbbrev ( ) const
inline

Definition at line 851 of file ASTWriter.h.

◆ handleVTable()

void ASTWriter::handleVTable ( CXXRecordDecl * RD)

Definition at line 4084 of file ASTWriter.cpp.

References clang::Decl::isInNamedModule().

◆ hasChain()

bool clang::ASTWriter::hasChain ( ) const
inline

Definition at line 898 of file ASTWriter.h.

◆ isDeclPredefined()

bool clang::ASTWriter::isDeclPredefined ( const Decl * D) const
inline

Definition at line 915 of file ASTWriter.h.

Referenced by isLookupResultNotInteresting().

◆ isGeneratingReducedBMI()

bool clang::ASTWriter::isGeneratingReducedBMI ( ) const
inline

Definition at line 911 of file ASTWriter.h.

◆ IsLocalDecl()

bool clang::ASTWriter::IsLocalDecl ( const Decl * D)
inline

Is this a local declaration (that is, one that will be written to our AST file)?

This is the case for declarations that are neither imported from another AST file nor predefined.

Definition at line 775 of file ASTWriter.h.

References clang::Decl::isFromASTFile(), and clang::NUM_PREDEF_DECL_IDS.

Referenced by getFirstLocalDecl().

◆ isWritingModule()

bool clang::ASTWriter::isWritingModule ( ) const
inline

Definition at line 901 of file ASTWriter.h.

◆ isWritingStdCXXHeaderUnit()

bool clang::ASTWriter::isWritingStdCXXHeaderUnit ( ) const
inline

Definition at line 907 of file ASTWriter.h.

◆ isWritingStdCXXNamedModules()

bool clang::ASTWriter::isWritingStdCXXNamedModules ( ) const
inline

Definition at line 903 of file ASTWriter.h.

Referenced by GetDeclRef(), and wasDeclEmitted().

◆ PreparePathForOutput()

bool ASTWriter::PreparePathForOutput ( SmallVectorImpl< char > & Path)

Convert a path from this build process into one that is appropriate for emission in the module file.

Definition at line 5327 of file ASTWriter.cpp.

References adjustFilenameForRelocatableAST(), and cleanPathForOutput().

Referenced by AddPath(), AddPathBlob(), and EmitRecordWithPath().

◆ RecordSwitchCaseID()

unsigned ASTWriter::RecordSwitchCaseID ( SwitchCase * S)

Record an ID for the given switch-case statement.

Definition at line 3061 of file ASTWriterStmt.cpp.

◆ SetIdentifierOffset()

void ASTWriter::SetIdentifierOffset ( const IdentifierInfo * II,
uint32_t Offset )

Note that the identifier II occurs at the given offset within the identifier table.

Definition at line 5384 of file ASTWriter.cpp.

References isLocalIdentifierID(), and clang::serialization::NUM_PREDEF_IDENT_IDS.

◆ SetSelectorOffset()

void ASTWriter::SetSelectorOffset ( Selector Sel,
uint32_t Offset )

Note that the selector Sel occurs at the given offset within the method pool/selector table.

Definition at line 5401 of file ASTWriter.cpp.

◆ wasDeclEmitted()

bool ASTWriter::wasDeclEmitted ( const Decl * D) const

Whether or not the declaration got emitted.

If not, it wouldn't be emitted.

This may only be called after we've done the job to write the declarations (marked by DoneWritingDeclsAndTypes).

A declaration may only be omitted in reduced BMI.

Definition at line 6958 of file ASTWriter.cpp.

References clang::Decl::getOwningModule(), clang::Decl::isFromASTFile(), and isWritingStdCXXNamedModules().

Referenced by AddEmittedDeclRef(), and isLookupResultNotInteresting().

◆ WriteAST()

ASTFileSignature ASTWriter::WriteAST ( llvm::PointerUnion< Sema *, Preprocessor * > Subject,
StringRef OutputFile,
Module * WritingModule,
StringRef isysroot,
bool ShouldCacheASTInMemory = false )

Write a precompiled header or a module with the AST produced by the Sema object, or a dependency scanner module with the preprocessor state produced by the Preprocessor object.

Parameters
SubjectThe Sema object that processed the AST to be written, or in the case of a dependency scanner module the Preprocessor that holds the state.
WritingModuleThe module that we are writing. If null, we are writing a precompiled header.
isysrootif non-empty, write a relocatable file whose headers are relative to the given system root. If we're writing a module, its build directory will be used in preference to this if both are available.
Returns
the module signature, which eventually will be a hash of the module but currently is merely a random 32-bit number.

Definition at line 5439 of file ASTWriter.cpp.

References clang::cast(), clang::Preprocessor::getDiagnostics(), clang::Sema::getPreprocessor(), and clang::DiagnosticsEngine::hasUncompilableErrorOccurred().

Referenced by serializeUnit().

◆ ASTDeclWriter

friend class ASTDeclWriter
friend

Definition at line 99 of file ASTWriter.h.

References ASTDeclWriter.

Referenced by ASTDeclWriter.

◆ ASTRecordWriter

friend class ASTRecordWriter
friend

Definition at line 100 of file ASTWriter.h.

References ASTRecordWriter.

Referenced by ASTRecordWriter.


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