clang 18.0.0git
Public Member Functions | Protected Member Functions | List of all members
clang::PCHGenerator Class Reference

AST and semantic-analysis consumer that generates a precompiled header from the parsed source code. More...

#include "clang/Serialization/ASTWriter.h"

Inheritance diagram for clang::PCHGenerator:
Inheritance graph
[legend]

Public Member Functions

 PCHGenerator (const Preprocessor &PP, InMemoryModuleCache &ModuleCache, StringRef OutputFile, StringRef isysroot, std::shared_ptr< PCHBuffer > Buffer, ArrayRef< std::shared_ptr< ModuleFileExtension > > Extensions, bool AllowASTWithErrors=false, bool IncludeTimestamps=true, bool BuildingImplicitModule=false, bool ShouldCacheASTInMemory=false)
 
 ~PCHGenerator () override
 
void InitializeSema (Sema &S) override
 Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on the abstract syntax tree.
 
void HandleTranslationUnit (ASTContext &Ctx) override
 HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed.
 
ASTMutationListenerGetASTMutationListener () override
 If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here.
 
ASTDeserializationListenerGetASTDeserializationListener () override
 If the consumer is interested in entities being deserialized from AST files, it should return a pointer to a ASTDeserializationListener here.
 
bool hasEmittedPCH () const
 
- Public Member Functions inherited from clang::SemaConsumer
 SemaConsumer ()
 
virtual void InitializeSema (Sema &S)
 Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on the abstract syntax tree.
 
virtual void ForgetSema ()
 Inform the semantic consumer that Sema is no longer available.
 
- Public Member Functions inherited from clang::ASTConsumer
 ASTConsumer ()=default
 
virtual ~ASTConsumer ()
 
virtual void Initialize (ASTContext &Context)
 Initialize - This is called to initialize the consumer, providing the ASTContext.
 
virtual bool HandleTopLevelDecl (DeclGroupRef D)
 HandleTopLevelDecl - Handle the specified top-level declaration.
 
virtual void HandleInlineFunctionDefinition (FunctionDecl *D)
 This callback is invoked each time an inline (method or friend) function definition in a class is completed.
 
virtual void HandleInterestingDecl (DeclGroupRef D)
 HandleInterestingDecl - Handle the specified interesting declaration.
 
virtual void HandleTranslationUnit (ASTContext &Ctx)
 HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed.
 
virtual void HandleTagDeclDefinition (TagDecl *D)
 HandleTagDeclDefinition - This callback is invoked each time a TagDecl (e.g.
 
virtual void HandleTagDeclRequiredDefinition (const TagDecl *D)
 This callback is invoked the first time each TagDecl is required to be complete.
 
virtual void HandleCXXImplicitFunctionInstantiation (FunctionDecl *D)
 Invoked when a function is implicitly instantiated.
 
virtual void HandleTopLevelDeclInObjCContainer (DeclGroupRef D)
 Handle the specified top-level declaration that occurred inside and ObjC container.
 
virtual void HandleImplicitImportDecl (ImportDecl *D)
 Handle an ImportDecl that was implicitly created due to an inclusion directive.
 
virtual void CompleteTentativeDefinition (VarDecl *D)
 CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consumer that the given tentative definition should be completed.
 
virtual void CompleteExternalDeclaration (VarDecl *D)
 CompleteExternalDeclaration - Callback invoked at the end of a translation unit to notify the consumer that the given external declaration should be completed.
 
virtual void AssignInheritanceModel (CXXRecordDecl *RD)
 Callback invoked when an MSInheritanceAttr has been attached to a CXXRecordDecl.
 
virtual void HandleCXXStaticMemberVarInstantiation (VarDecl *D)
 HandleCXXStaticMemberVarInstantiation - Tell the consumer that this.
 
virtual void HandleVTable (CXXRecordDecl *RD)
 Callback involved at the end of a translation unit to notify the consumer that a vtable for the given C++ class is required.
 
virtual ASTMutationListenerGetASTMutationListener ()
 If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here.
 
virtual ASTDeserializationListenerGetASTDeserializationListener ()
 If the consumer is interested in entities being deserialized from AST files, it should return a pointer to a ASTDeserializationListener here.
 
virtual void PrintStats ()
 PrintStats - If desired, print any statistics.
 
virtual bool shouldSkipFunctionBody (Decl *D)
 This callback is called for each function if the Parser was initialized with SkipFunctionBodies set to true.
 

Protected Member Functions

ASTWritergetWriter ()
 
const ASTWritergetWriter () const
 
SmallVectorImpl< char > & getPCH () const
 

Additional Inherited Members

- Static Public Member Functions inherited from clang::SemaConsumer
static bool classof (const ASTConsumer *Consumer)
 

Detailed Description

AST and semantic-analysis consumer that generates a precompiled header from the parsed source code.

Definition at line 801 of file ASTWriter.h.

Constructor & Destructor Documentation

◆ PCHGenerator()

PCHGenerator::PCHGenerator ( const Preprocessor PP,
InMemoryModuleCache ModuleCache,
StringRef  OutputFile,
StringRef  isysroot,
std::shared_ptr< PCHBuffer Buffer,
ArrayRef< std::shared_ptr< ModuleFileExtension > >  Extensions,
bool  AllowASTWithErrors = false,
bool  IncludeTimestamps = true,
bool  BuildingImplicitModule = false,
bool  ShouldCacheASTInMemory = false 
)

Definition at line 23 of file GeneratePCH.cpp.

◆ ~PCHGenerator()

PCHGenerator::~PCHGenerator ( )
override

Definition at line 38 of file GeneratePCH.cpp.

Member Function Documentation

◆ GetASTDeserializationListener()

ASTDeserializationListener * PCHGenerator::GetASTDeserializationListener ( )
overridevirtual

If the consumer is interested in entities being deserialized from AST files, it should return a pointer to a ASTDeserializationListener here.

Reimplemented from clang::ASTConsumer.

Definition at line 82 of file GeneratePCH.cpp.

◆ GetASTMutationListener()

ASTMutationListener * PCHGenerator::GetASTMutationListener ( )
overridevirtual

If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here.

Reimplemented from clang::ASTConsumer.

Definition at line 78 of file GeneratePCH.cpp.

◆ getPCH()

SmallVectorImpl< char > & clang::PCHGenerator::getPCH ( ) const
inlineprotected

Definition at line 815 of file ASTWriter.h.

◆ getWriter() [1/2]

ASTWriter & clang::PCHGenerator::getWriter ( )
inlineprotected

Definition at line 813 of file ASTWriter.h.

◆ getWriter() [2/2]

const ASTWriter & clang::PCHGenerator::getWriter ( ) const
inlineprotected

Definition at line 814 of file ASTWriter.h.

◆ HandleTranslationUnit()

void PCHGenerator::HandleTranslationUnit ( ASTContext Ctx)
overridevirtual

◆ hasEmittedPCH()

bool clang::PCHGenerator::hasEmittedPCH ( ) const
inline

Definition at line 831 of file ASTWriter.h.

◆ InitializeSema()

void clang::PCHGenerator::InitializeSema ( Sema S)
inlineoverridevirtual

Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on the abstract syntax tree.

Reimplemented from clang::SemaConsumer.

Definition at line 827 of file ASTWriter.h.


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