clang  3.8.0
Public Member Functions | Static Public Member Functions | List of all members
clang::BackendConsumer Class Reference
Inheritance diagram for clang::BackendConsumer:
[legend]
Collaboration diagram for clang::BackendConsumer:
[legend]

Public Member Functions

 BackendConsumer (BackendAction Action, DiagnosticsEngine &Diags, const HeaderSearchOptions &HeaderSearchOpts, const PreprocessorOptions &PPOpts, const CodeGenOptions &CodeGenOpts, const TargetOptions &TargetOpts, const LangOptions &LangOpts, bool TimePasses, const std::string &InFile, const SmallVectorImpl< std::pair< unsigned, llvm::Module * >> &LinkModules, raw_pwrite_stream *OS, LLVMContext &C, CoverageSourceInfo *CoverageInfo=nullptr)
 
std::unique_ptr< llvm::Module > takeModule ()
 
void releaseLinkModules ()
 
void HandleCXXStaticMemberVarInstantiation (VarDecl *VD) override
 HandleCXXStaticMemberVarInstantiation - Tell the consumer that this. More...
 
void Initialize (ASTContext &Ctx) override
 Initialize - This is called to initialize the consumer, providing the ASTContext. More...
 
bool HandleTopLevelDecl (DeclGroupRef D) override
 HandleTopLevelDecl - Handle the specified top-level declaration. More...
 
void HandleInlineMethodDefinition (CXXMethodDecl *D) override
 This callback is invoked each time an inline method definition is completed. More...
 
void HandleTranslationUnit (ASTContext &C) override
 HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed. More...
 
void HandleTagDeclDefinition (TagDecl *D) override
 HandleTagDeclDefinition - This callback is invoked each time a TagDecl (e.g. More...
 
void HandleTagDeclRequiredDefinition (const TagDecl *D) override
 This callback is invoked the first time each TagDecl is required to be complete. More...
 
void CompleteTentativeDefinition (VarDecl *D) override
 CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consumer that the given tentative definition should be completed. More...
 
void HandleVTable (CXXRecordDecl *RD) override
 Callback involved at the end of a translation unit to notify the consumer that a vtable for the given C++ class is required. More...
 
void HandleLinkerOptionPragma (llvm::StringRef Opts) override
 Handle a pragma that appends to Linker Options. More...
 
void HandleDetectMismatch (llvm::StringRef Name, llvm::StringRef Value) override
 Handle a pragma that emits a mismatch identifier and value to the object file for the linker to work with. More...
 
void HandleDependentLibrary (llvm::StringRef Opts) override
 Handle a dependent library created by a pragma in the source. More...
 
void InlineAsmDiagHandler2 (const llvm::SMDiagnostic &, SourceLocation LocCookie)
 InlineAsmDiagHandler2 - This function is invoked when the backend hits an error parsing inline asm. More...
 
void DiagnosticHandlerImpl (const llvm::DiagnosticInfo &DI)
 This function is invoked when the backend needs to report something to the user. More...
 
bool InlineAsmDiagHandler (const llvm::DiagnosticInfoInlineAsm &D)
 Specialized handler for InlineAsm diagnostic. More...
 
bool StackSizeDiagHandler (const llvm::DiagnosticInfoStackSize &D)
 Specialized handler for StackSize diagnostic. More...
 
void EmitOptimizationMessage (const llvm::DiagnosticInfoOptimizationBase &D, unsigned DiagID)
 Specialized handlers for optimization remarks. More...
 
void OptimizationRemarkHandler (const llvm::DiagnosticInfoOptimizationRemark &D)
 
void OptimizationRemarkHandler (const llvm::DiagnosticInfoOptimizationRemarkMissed &D)
 
void OptimizationRemarkHandler (const llvm::DiagnosticInfoOptimizationRemarkAnalysis &D)
 
void OptimizationRemarkHandler (const llvm::DiagnosticInfoOptimizationRemarkAnalysisFPCommute &D)
 
void OptimizationRemarkHandler (const llvm::DiagnosticInfoOptimizationRemarkAnalysisAliasing &D)
 
void OptimizationFailureHandler (const llvm::DiagnosticInfoOptimizationFailure &D)
 
- Public Member Functions inherited from clang::ASTConsumer
 ASTConsumer ()
 
virtual ~ASTConsumer ()
 
virtual void HandleInterestingDecl (DeclGroupRef D)
 HandleInterestingDecl - Handle the specified interesting declaration. More...
 
virtual void HandleCXXImplicitFunctionInstantiation (FunctionDecl *D)
 Invoked when a function is implicitly instantiated. More...
 
virtual void HandleTopLevelDeclInObjCContainer (DeclGroupRef D)
 Handle the specified top-level declaration that occurred inside and ObjC container. More...
 
virtual void HandleImplicitImportDecl (ImportDecl *D)
 Handle an ImportDecl that was implicitly created due to an inclusion directive. More...
 
virtual ASTMutationListenerGetASTMutationListener ()
 If the consumer is interested in entities getting modified after their initial creation, it should return a pointer to an ASTMutationListener here. More...
 
virtual
ASTDeserializationListener
GetASTDeserializationListener ()
 If the consumer is interested in entities being deserialized from AST files, it should return a pointer to a ASTDeserializationListener here. More...
 
virtual void PrintStats ()
 PrintStats - If desired, print any statistics. More...
 
virtual bool shouldSkipFunctionBody (Decl *D)
 This callback is called for each function if the Parser was initialized with SkipFunctionBodies set to true. More...
 

Static Public Member Functions

static void InlineAsmDiagHandler (const llvm::SMDiagnostic &SM, void *Context, unsigned LocCookie)
 
static void DiagnosticHandler (const llvm::DiagnosticInfo &DI, void *Context)
 

Detailed Description

Definition at line 42 of file CodeGenAction.cpp.

Constructor & Destructor Documentation

clang::BackendConsumer::BackendConsumer ( BackendAction  Action,
DiagnosticsEngine Diags,
const HeaderSearchOptions HeaderSearchOpts,
const PreprocessorOptions PPOpts,
const CodeGenOptions CodeGenOpts,
const TargetOptions TargetOpts,
const LangOptions LangOpts,
bool  TimePasses,
const std::string &  InFile,
const SmallVectorImpl< std::pair< unsigned, llvm::Module * >> &  LinkModules,
raw_pwrite_stream *  OS,
LLVMContext &  C,
CoverageSourceInfo CoverageInfo = nullptr 
)
inline

Definition at line 65 of file CodeGenAction.cpp.

References I.

Member Function Documentation

void clang::BackendConsumer::CompleteTentativeDefinition ( VarDecl D)
inlineoverridevirtual

CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consumer that the given tentative definition should be completed.

The variable declaration itself will be a tentative definition. If it had an incomplete array type, its type will have already been changed to an array of size 1. However, the declaration remains a tentative definition and has not been modified by the introduction of an implicit zero initializer.

Reimplemented from clang::ASTConsumer.

Definition at line 209 of file CodeGenAction.cpp.

static void clang::BackendConsumer::DiagnosticHandler ( const llvm::DiagnosticInfo &  DI,
void *  Context 
)
inlinestatic

Definition at line 236 of file CodeGenAction.cpp.

void BackendConsumer::DiagnosticHandlerImpl ( const llvm::DiagnosticInfo &  DI)

This function is invoked when the backend needs to report something to the user.

Definition at line 547 of file CodeGenAction.cpp.

References ComputeDiagID, and ComputeDiagRemarkID.

void BackendConsumer::EmitOptimizationMessage ( const llvm::DiagnosticInfoOptimizationBase &  D,
unsigned  DiagID 
)

Specialized handlers for optimization remarks.

Note that these handlers only accept remarks and they always handle them.

Definition at line 438 of file CodeGenAction.cpp.

References Column, Context, Filename, clang::FileManager::getFile(), clang::ASTContext::getSourceManager(), clang::SourceLocation::isInvalid(), Line, and SourceMgr.

void clang::BackendConsumer::HandleCXXStaticMemberVarInstantiation ( VarDecl D)
inlineoverridevirtual

HandleCXXStaticMemberVarInstantiation - Tell the consumer that this.

Reimplemented from clang::ASTConsumer.

Definition at line 90 of file CodeGenAction.cpp.

void clang::BackendConsumer::HandleDependentLibrary ( llvm::StringRef  Lib)
inlineoverridevirtual

Handle a dependent library created by a pragma in the source.

Currently this only exists to support Microsoft's #pragma comment(lib, "/foo").

Reimplemented from clang::ASTConsumer.

Definition at line 226 of file CodeGenAction.cpp.

void clang::BackendConsumer::HandleDetectMismatch ( llvm::StringRef  Name,
llvm::StringRef  Value 
)
inlineoverridevirtual

Handle a pragma that emits a mismatch identifier and value to the object file for the linker to work with.

Currently, this only exists to support Microsoft's #pragma detect_mismatch.

Reimplemented from clang::ASTConsumer.

Definition at line 221 of file CodeGenAction.cpp.

void clang::BackendConsumer::HandleInlineMethodDefinition ( CXXMethodDecl D)
inlineoverridevirtual

This callback is invoked each time an inline method definition is completed.

Reimplemented from clang::ASTConsumer.

Definition at line 126 of file CodeGenAction.cpp.

References Context, and clang::ASTContext::getSourceManager().

void clang::BackendConsumer::HandleLinkerOptionPragma ( llvm::StringRef  Opts)
inlineoverridevirtual

Handle a pragma that appends to Linker Options.

Currently this only exists to support Microsoft's #pragma comment(linker, "/foo").

Reimplemented from clang::ASTConsumer.

Definition at line 217 of file CodeGenAction.cpp.

void clang::BackendConsumer::HandleTagDeclDefinition ( TagDecl D)
inlineoverridevirtual

HandleTagDeclDefinition - This callback is invoked each time a TagDecl (e.g.

struct, union, enum, class) is completed. This allows the client to hack on the type, which can occur at any point in the file (because these can be defined in declspecs).

Reimplemented from clang::ASTConsumer.

Definition at line 198 of file CodeGenAction.cpp.

References Context, and clang::ASTContext::getSourceManager().

void clang::BackendConsumer::HandleTagDeclRequiredDefinition ( const TagDecl D)
inlineoverridevirtual

This callback is invoked the first time each TagDecl is required to be complete.

Reimplemented from clang::ASTConsumer.

Definition at line 205 of file CodeGenAction.cpp.

bool clang::BackendConsumer::HandleTopLevelDecl ( DeclGroupRef  D)
inlineoverridevirtual

HandleTopLevelDecl - Handle the specified top-level declaration.

This is called by the parser to process every top-level Decl*.

Returns
true to continue parsing, or false to abort parsing.

Reimplemented from clang::ASTConsumer.

Definition at line 110 of file CodeGenAction.cpp.

References clang::DeclGroupRef::begin(), Context, and clang::ASTContext::getSourceManager().

void clang::BackendConsumer::HandleTranslationUnit ( ASTContext Ctx)
inlineoverridevirtual

HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been parsed.

Reimplemented from clang::ASTConsumer.

Definition at line 139 of file CodeGenAction.cpp.

References Action, clang::EmitBackendOutput(), clang::TargetInfo::getDataLayoutString(), clang::ASTContext::getTargetInfo(), and I.

void clang::BackendConsumer::HandleVTable ( CXXRecordDecl RD)
inlineoverridevirtual

Callback involved at the end of a translation unit to notify the consumer that a vtable for the given C++ class is required.

Parameters
RDThe class whose vtable was used.

Reimplemented from clang::ASTConsumer.

Definition at line 213 of file CodeGenAction.cpp.

void clang::BackendConsumer::Initialize ( ASTContext Context)
inlineoverridevirtual

Initialize - This is called to initialize the consumer, providing the ASTContext.

Reimplemented from clang::ASTConsumer.

Definition at line 94 of file CodeGenAction.cpp.

References Context.

static void clang::BackendConsumer::InlineAsmDiagHandler ( const llvm::SMDiagnostic &  SM,
void *  Context,
unsigned  LocCookie 
)
inlinestatic

Definition at line 230 of file CodeGenAction.cpp.

References clang::SourceLocation::getFromRawEncoding().

bool BackendConsumer::InlineAsmDiagHandler ( const llvm::DiagnosticInfoInlineAsm &  D)

Specialized handler for InlineAsm diagnostic.

Returns
True if the diagnostic has been successfully reported, false otherwise.

Definition at line 397 of file CodeGenAction.cpp.

References ComputeDiagID, clang::SourceLocation::getFromRawEncoding(), and clang::SourceLocation::isValid().

void BackendConsumer::InlineAsmDiagHandler2 ( const llvm::SMDiagnostic &  D,
SourceLocation  LocCookie 
)

InlineAsmDiagHandler2 - This function is invoked when the backend hits an error parsing inline asm.

The SMDiagnostic indicates the error relative to the temporary memory buffer that the inline asm parser has set up.

Definition at line 308 of file CodeGenAction.cpp.

References Column, Context, ConvertBackendLocation(), clang::SourceLocation::getLocWithOffset(), clang::ASTContext::getSourceManager(), and clang::SourceLocation::isValid().

void BackendConsumer::OptimizationFailureHandler ( const llvm::DiagnosticInfoOptimizationFailure &  D)

Definition at line 540 of file CodeGenAction.cpp.

void BackendConsumer::OptimizationRemarkHandler ( const llvm::DiagnosticInfoOptimizationRemark &  D)

Definition at line 481 of file CodeGenAction.cpp.

void BackendConsumer::OptimizationRemarkHandler ( const llvm::DiagnosticInfoOptimizationRemarkMissed &  D)

Definition at line 490 of file CodeGenAction.cpp.

void BackendConsumer::OptimizationRemarkHandler ( const llvm::DiagnosticInfoOptimizationRemarkAnalysis &  D)

Definition at line 501 of file CodeGenAction.cpp.

void BackendConsumer::OptimizationRemarkHandler ( const llvm::DiagnosticInfoOptimizationRemarkAnalysisFPCommute &  D)

Definition at line 514 of file CodeGenAction.cpp.

void BackendConsumer::OptimizationRemarkHandler ( const llvm::DiagnosticInfoOptimizationRemarkAnalysisAliasing &  D)

Definition at line 527 of file CodeGenAction.cpp.

void clang::BackendConsumer::releaseLinkModules ( )
inline

Definition at line 85 of file CodeGenAction.cpp.

References I.

Referenced by clang::CodeGenAction::EndSourceFileAction().

bool BackendConsumer::StackSizeDiagHandler ( const llvm::DiagnosticInfoStackSize &  D)

Specialized handler for StackSize diagnostic.

Returns
True if the diagnostic has been successfully reported, false otherwise.

Definition at line 422 of file CodeGenAction.cpp.

References clang::Decl::castToDeclContext().

std::unique_ptr<llvm::Module> clang::BackendConsumer::takeModule ( )
inline

Definition at line 84 of file CodeGenAction.cpp.

Referenced by clang::CodeGenAction::EndSourceFileAction().


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