clang API Documentation

Classes | Public Member Functions
clang::CompilerInstance Class Reference

#include <CompilerInstance.h>

Inheritance diagram for clang::CompilerInstance:
Inheritance graph
[legend]
Collaboration diagram for clang::CompilerInstance:
Collaboration graph
[legend]

List of all members.

Classes

struct  OutputFile
 Holds information about the output file.

Public Member Functions

 CompilerInstance (bool BuildingModule=false)
 ~CompilerInstance ()
High-Level Operations

{

bool ExecuteAction (FrontendAction &Act)
Compiler Invocation and Options

}

{

bool hasInvocation () const
CompilerInvocationgetInvocation ()
void setInvocation (CompilerInvocation *Value)
 setInvocation - Replace the current invocation.
bool shouldBuildGlobalModuleIndex () const
 Indicates whether we should (re)build the global module index.
void setBuildGlobalModuleIndex (bool Build)
 Set the flag indicating whether we should (re)build the global module index.
Forwarding Methods

}

{

AnalyzerOptionsRef getAnalyzerOpts ()
CodeGenOptionsgetCodeGenOpts ()
const CodeGenOptionsgetCodeGenOpts () const
DependencyOutputOptionsgetDependencyOutputOpts ()
const DependencyOutputOptionsgetDependencyOutputOpts () const
DiagnosticOptionsgetDiagnosticOpts ()
const DiagnosticOptionsgetDiagnosticOpts () const
const FileSystemOptionsgetFileSystemOpts () const
FrontendOptionsgetFrontendOpts ()
const FrontendOptionsgetFrontendOpts () const
HeaderSearchOptionsgetHeaderSearchOpts ()
const HeaderSearchOptionsgetHeaderSearchOpts () const
LangOptionsgetLangOpts ()
const LangOptionsgetLangOpts () const
PreprocessorOptionsgetPreprocessorOpts ()
const PreprocessorOptionsgetPreprocessorOpts () const
PreprocessorOutputOptionsgetPreprocessorOutputOpts ()
const PreprocessorOutputOptionsgetPreprocessorOutputOpts () const
TargetOptionsgetTargetOpts ()
const TargetOptionsgetTargetOpts () const
Diagnostics Engine

}

{

bool hasDiagnostics () const
DiagnosticsEnginegetDiagnostics () const
 Get the current diagnostics engine.
void setDiagnostics (DiagnosticsEngine *Value)
 setDiagnostics - Replace the current diagnostics engine.
DiagnosticConsumergetDiagnosticClient () const
Target Info

}

{

bool hasTarget () const
TargetInfogetTarget () const
void setTarget (TargetInfo *Value)
 Replace the current diagnostics engine.
Virtual File System

}

{

bool hasVirtualFileSystem () const
vfs::FileSystemgetVirtualFileSystem () const
void setVirtualFileSystem (IntrusiveRefCntPtr< vfs::FileSystem > FS)
 Replace the current virtual file system.
File Manager

}

{

bool hasFileManager () const
FileManagergetFileManager () const
 Return the current file manager to the caller.
void resetAndLeakFileManager ()
void setFileManager (FileManager *Value)
 Replace the current file manager and virtual file system.
Source Manager

}

{

bool hasSourceManager () const
SourceManagergetSourceManager () const
 Return the current source manager.
void resetAndLeakSourceManager ()
void setSourceManager (SourceManager *Value)
 setSourceManager - Replace the current source manager.
Preprocessor

}

{

bool hasPreprocessor () const
PreprocessorgetPreprocessor () const
 Return the current preprocessor.
void resetAndLeakPreprocessor ()
void setPreprocessor (Preprocessor *Value)
 Replace the current preprocessor.
ASTContext

}

{

bool hasASTContext () const
ASTContextgetASTContext () const
void resetAndLeakASTContext ()
void setASTContext (ASTContext *Value)
 setASTContext - Replace the current AST context.
void setSema (Sema *S)
 Replace the current Sema; the compiler instance takes ownership of S.
ASTConsumer

}

{

bool hasASTConsumer () const
ASTConsumergetASTConsumer () const
std::unique_ptr< ASTConsumertakeASTConsumer ()
void setASTConsumer (std::unique_ptr< ASTConsumer > Value)
Semantic analysis

}

{

bool hasSema () const
SemagetSema () const
std::unique_ptr< SematakeSema ()
void resetAndLeakSema ()
Module Management

}

{

IntrusiveRefCntPtr< ASTReadergetModuleManager () const
void setModuleManager (IntrusiveRefCntPtr< ASTReader > Reader)
std::shared_ptr
< ModuleDependencyCollector
getModuleDepCollector () const
void setModuleDepCollector (std::shared_ptr< ModuleDependencyCollector > Collector)
Code Completion

}

{

bool hasCodeCompletionConsumer () const
CodeCompleteConsumergetCodeCompletionConsumer () const
void setCodeCompletionConsumer (CodeCompleteConsumer *Value)
Frontend timer

}

{

bool hasFrontendTimer () const
llvm::Timer & getFrontendTimer () const
Output Files

}

{

void addOutputFile (const OutputFile &OutFile)
void clearOutputFiles (bool EraseFiles)

Construction Utility Methods

}

{

void createDiagnostics (DiagnosticConsumer *Client=nullptr, bool ShouldOwnClient=true)
void createFileManager ()
 Create the file manager and replace any existing one with it.
void createSourceManager (FileManager &FileMgr)
 Create the source manager and replace any existing one with it.
void createPreprocessor (TranslationUnitKind TUKind)
void createASTContext ()
 Create the AST context.
void createPCHExternalASTSource (StringRef Path, bool DisablePCHValidation, bool AllowPCHWithCompilerErrors, void *DeserializationListener, bool OwnDeserializationListener)
void createCodeCompletionConsumer ()
void createSema (TranslationUnitKind TUKind, CodeCompleteConsumer *CompletionConsumer)
 Create the Sema object to be used for parsing.
void createFrontendTimer ()
 Create the frontend timer and replace any existing one with it.
llvm::raw_fd_ostream * createDefaultOutputFile (bool Binary=true, StringRef BaseInput="", StringRef Extension="")
llvm::raw_fd_ostream * createOutputFile (StringRef OutputPath, bool Binary, bool RemoveFileOnSignal, StringRef BaseInput, StringRef Extension, bool UseTemporary, bool CreateMissingDirectories=false)
llvm::raw_null_ostream * createNullOutputFile ()
static IntrusiveRefCntPtr
< DiagnosticsEngine
createDiagnostics (DiagnosticOptions *Opts, DiagnosticConsumer *Client=nullptr, bool ShouldOwnClient=true, const CodeGenOptions *CodeGenOpts=nullptr)
static ExternalASTSourcecreatePCHExternalASTSource (StringRef Path, const std::string &Sysroot, bool DisablePCHValidation, bool AllowPCHWithCompilerErrors, Preprocessor &PP, ASTContext &Context, void *DeserializationListener, bool OwnDeserializationListener, bool Preamble, bool UseGlobalModuleIndex)
static CodeCompleteConsumercreateCodeCompletionConsumer (Preprocessor &PP, const std::string &Filename, unsigned Line, unsigned Column, const CodeCompleteOptions &Opts, raw_ostream &OS)
static llvm::raw_fd_ostream * createOutputFile (StringRef OutputPath, std::error_code &Error, bool Binary, bool RemoveFileOnSignal, StringRef BaseInput, StringRef Extension, bool UseTemporary, bool CreateMissingDirectories, std::string *ResultPathName, std::string *TempPathName)

Initialization Utility Methods

}

{

bool InitializeSourceManager (const FrontendInputFile &Input)
void createModuleManager ()
 }
bool loadModuleFile (StringRef FileName)
ModuleLoadResult loadModule (SourceLocation ImportLoc, ModuleIdPath Path, Module::NameVisibilityKind Visibility, bool IsInclusionDirective) override
 Attempt to load the given module.
void makeModuleVisible (Module *Mod, Module::NameVisibilityKind Visibility, SourceLocation ImportLoc, bool Complain) override
 Make the given module visible.
bool hadModuleLoaderFatalFailure () const
GlobalModuleIndexloadGlobalModuleIndex (SourceLocation TriggerLoc) override
 Load, create, or return global module. This function returns an existing global module index, if one had already been loaded or created, or loads one if it exists, or creates one if it doesn't exist. Also, importantly, if the index doesn't cover all the modules in the module map, it will be update to do so here, because of its use in searching for needed module imports and associated fixit messages.
bool lookupMissingImports (StringRef Name, SourceLocation TriggerLoc) override
void addDependencyCollector (std::shared_ptr< DependencyCollector > Listener)
static bool InitializeSourceManager (const FrontendInputFile &Input, DiagnosticsEngine &Diags, FileManager &FileMgr, SourceManager &SourceMgr, const FrontendOptions &Opts)

Detailed Description

CompilerInstance - Helper class for managing a single instance of the Clang compiler.

The CompilerInstance serves two purposes: (1) It manages the various objects which are necessary to run the compiler, for example the preprocessor, the target information, and the AST context. (2) It provides utility routines for constructing and manipulating the common Clang objects.

The compiler instance generally owns the instance of all the objects that it manages. However, clients can still share objects by manually setting the object and retaking ownership prior to destroying the CompilerInstance.

The compiler instance is intended to simplify clients, but not to lock them in to the compiler instance for everything. When possible, utility functions come in two forms; a short form that reuses the CompilerInstance objects, and a long form that takes explicit instances of any required objects.

Definition at line 69 of file CompilerInstance.h.


Constructor & Destructor Documentation

CompilerInstance::CompilerInstance ( bool  BuildingModule = false) [explicit]

Definition at line 54 of file CompilerInstance.cpp.

Definition at line 61 of file CompilerInstance.cpp.


Member Function Documentation

void clang::CompilerInstance::addDependencyCollector ( std::shared_ptr< DependencyCollector Listener) [inline]

Definition at line 714 of file CompilerInstance.h.

void CompilerInstance::addOutputFile ( const OutputFile &  OutFile)

addOutputFile - Add an output file onto the list of tracked output files.

Parameters:
OutFile- The output file info.

Definition at line 517 of file CompilerInstance.cpp.

Referenced by createNullOutputFile(), and createOutputFile().

clearOutputFiles - Clear the output file list, destroying the contained output streams.

Parameters:
EraseFiles- If true, attempt to erase the files from disk.

Definition at line 522 of file CompilerInstance.cpp.

References getDiagnostics(), and clang::DiagnosticsEngine::Report().

Referenced by clang::FrontendAction::BeginSourceFile(), and clang::FrontendAction::EndSourceFile().

Create a code completion consumer using the invocation; note that this will cause the source manager to truncate the input source file at the completion point.

Definition at line 468 of file CompilerInstance.cpp.

References clang::FrontendOptions::CodeCompletionAt, clang::ParsedSourceLocation::Column, EnableCodeCompletion(), clang::ParsedSourceLocation::FileName, clang::Preprocessor::getDiagnostics(), getFrontendOpts(), getPreprocessor(), clang::ParsedSourceLocation::Line, clang::DiagnosticsEngine::Report(), and setCodeCompletionConsumer().

Referenced by clang::ASTFrontendAction::ExecuteAction().

CodeCompleteConsumer * CompilerInstance::createCodeCompletionConsumer ( Preprocessor PP,
const std::string &  Filename,
unsigned  Line,
unsigned  Column,
const CodeCompleteOptions Opts,
raw_ostream &  OS 
) [static]

Create a code completion consumer to print code completion results, at Filename, Line, and Column, to the given output stream OS.

Definition at line 496 of file CompilerInstance.cpp.

References EnableCodeCompletion().

llvm::raw_fd_ostream * CompilerInstance::createDefaultOutputFile ( bool  Binary = true,
StringRef  BaseInput = "",
StringRef  Extension = "" 
)

Create the default output file (from the invocation's options) and add it to the list of tracked output files.

The files created by this function always use temporary files to write to their result (that is, the data is written to a temporary file which will atomically replace the target output on success).

Returns:
- Null on error.

Definition at line 551 of file CompilerInstance.cpp.

References createOutputFile(), and getFrontendOpts().

Referenced by clang::HTMLPrintAction::CreateASTConsumer(), clang::ASTPrintAction::CreateASTConsumer(), clang::RewriteMacrosAction::ExecuteAction(), clang::RewriteTestAction::ExecuteAction(), clang::RewriteIncludesAction::ExecuteAction(), clang::GeneratePTHAction::ExecuteAction(), clang::PrintPreprocessedAction::ExecuteAction(), and GetOutputStream().

void CompilerInstance::createDiagnostics ( DiagnosticConsumer Client = nullptr,
bool  ShouldOwnClient = true 
)

Create the diagnostics engine using the invocation's diagnostic options and replace any existing one with it.

Note that this routine also replaces the diagnostic client, allocating one if one is not provided.

Parameters:
ClientIf non-NULL, a diagnostic client that will be attached to (and, then, owned by) the DiagnosticsEngine inside this AST unit.
ShouldOwnClientIf Client is non-NULL, specifies whether the diagnostic object should take ownership of the client.

Definition at line 181 of file CompilerInstance.cpp.

References getCodeGenOpts(), and getDiagnosticOpts().

Referenced by clang::createInvocationFromCommandLine(), and clang::tooling::FrontendActionFactory::runInvocation().

IntrusiveRefCntPtr< DiagnosticsEngine > CompilerInstance::createDiagnostics ( DiagnosticOptions Opts,
DiagnosticConsumer Client = nullptr,
bool  ShouldOwnClient = true,
const CodeGenOptions CodeGenOpts = nullptr 
) [static]

Create a DiagnosticsEngine object with a the TextDiagnosticPrinter.

If no diagnostic client is provided, this creates a DiagnosticConsumer that is owned by the returned diagnostic object, if using directly the caller is responsible for releasing the returned DiagnosticsEngine's client eventually.

Parameters:
Opts- The diagnostic options; note that the created text diagnostic object contains a reference to these options.
ClientIf non-NULL, a diagnostic client that will be attached to (and, then, owned by) the returned DiagnosticsEngine object.
CodeGenOptsIf non-NULL, the code gen options in use, which may be used by some diagnostics printers (for logging purposes only).
Returns:
The new object on success, or null on failure.

Definition at line 188 of file CompilerInstance.cpp.

References clang::DiagnosticOptions::DiagnosticSerializationFile, clang::ProcessWarningOptions(), SetUpDiagnosticLog(), and SetupSerializedDiagnostics().

Create the file manager and replace any existing one with it.

Definition at line 223 of file CompilerInstance.cpp.

References getFileSystemOpts(), clang::vfs::getRealFileSystem(), hasVirtualFileSystem(), and setVirtualFileSystem().

Referenced by clang::FrontendAction::BeginSourceFile().

Create the frontend timer and replace any existing one with it.

Definition at line 491 of file CompilerInstance.cpp.

Referenced by ExecuteAction().

llvm::raw_null_ostream * CompilerInstance::createNullOutputFile ( )

Definition at line 559 of file CompilerInstance.cpp.

References addOutputFile().

Referenced by GetOutputStream().

llvm::raw_fd_ostream * CompilerInstance::createOutputFile ( StringRef  OutputPath,
bool  Binary,
bool  RemoveFileOnSignal,
StringRef  BaseInput,
StringRef  Extension,
bool  UseTemporary,
bool  CreateMissingDirectories = false 
)

Create a new output file and add it to the list of tracked output files, optionally deriving the output path name.

Returns:
- Null on error.

Definition at line 566 of file CompilerInstance.cpp.

References addOutputFile(), getDiagnostics(), and clang::DiagnosticsEngine::Report().

Referenced by clang::GeneratePCHAction::ComputeASTConsumerArguments(), clang::GenerateModuleAction::ComputeASTConsumerArguments(), and createDefaultOutputFile().

llvm::raw_fd_ostream * CompilerInstance::createOutputFile ( StringRef  OutputPath,
std::error_code &  Error,
bool  Binary,
bool  RemoveFileOnSignal,
StringRef  BaseInput,
StringRef  Extension,
bool  UseTemporary,
bool  CreateMissingDirectories,
std::string *  ResultPathName,
std::string *  TempPathName 
) [static]

Create a new output file, optionally deriving the output path name.

If OutputPath is empty, then createOutputFile will derive an output path location as BaseInput, with any suffix removed, and Extension appended. If OutputPath is not stdout and UseTemporary is true, createOutputFile will create a new temporary file that must be renamed to OutputPath in the end.

Parameters:
OutputPath- If given, the path to the output file.
Error[out] - On failure, the error.
BaseInput- If OutputPath is empty, the input path name to use for deriving the output path.
Extension- The extension to use for derived output names.
Binary- The mode to open the file in.
RemoveFileOnSignal- Whether the file should be registered with llvm::sys::RemoveFileOnSignal. Note that this is not safe for multithreaded use, as the underlying signal mechanism is not reentrant
UseTemporary- Create a new temporary file that must be renamed to OutputPath in the end.
CreateMissingDirectories- When UseTemporary is true, create missing directories in the output path.
ResultPathName[out] - If given, the result path name will be stored here on success.
TempPathName[out] - If given, the temporary file path name will be stored here on success.

Definition at line 591 of file CompilerInstance.cpp.

void CompilerInstance::createPCHExternalASTSource ( StringRef  Path,
bool  DisablePCHValidation,
bool  AllowPCHWithCompilerErrors,
void *  DeserializationListener,
bool  OwnDeserializationListener 
)
ExternalASTSource * CompilerInstance::createPCHExternalASTSource ( StringRef  Path,
const std::string &  Sysroot,
bool  DisablePCHValidation,
bool  AllowPCHWithCompilerErrors,
Preprocessor PP,
ASTContext Context,
void *  DeserializationListener,
bool  OwnDeserializationListener,
bool  Preamble,
bool  UseGlobalModuleIndex 
) [static]
void CompilerInstance::createSema ( TranslationUnitKind  TUKind,
CodeCompleteConsumer CompletionConsumer 
)

Create the Sema object to be used for parsing.

Definition at line 509 of file CompilerInstance.cpp.

References getASTConsumer(), getASTContext(), and getPreprocessor().

Referenced by clang::ASTFrontendAction::ExecuteAction().

Create the source manager and replace any existing one with it.

Definition at line 233 of file CompilerInstance.cpp.

References getDiagnostics(), and SourceMgr.

Referenced by clang::FrontendAction::BeginSourceFile(), and clang::tooling::FrontendActionFactory::runInvocation().

ExecuteAction - Execute the provided action against the compiler's CompilerInvocation object.

This function makes the following assumptions:

  • The invocation options should be initialized. This function does not handle the '-help' or '-version' options, clients should handle those directly.
  • The diagnostics engine should have already been created by the client.
  • No other CompilerInstance state should have been initialized (this is an unchecked error).
  • Clients should have initialized any LLVM target features that may be required.
  • Clients should eventually call llvm_shutdown() upon the completion of this routine to ensure that any managed objects are properly destroyed.

Note that this routine may write output to 'stderr'.

Parameters:
Act- The action to execute.
Returns:
- True on success.

Definition at line 759 of file CompilerInstance.cpp.

References clang::TargetInfo::adjust(), clang::FrontendAction::BeginSourceFile(), CLANG_VERSION_STRING, clang::SourceManager::clearIDTables(), createFrontendTimer(), clang::TargetInfo::CreateTargetInfo(), clang::FrontendAction::EndSourceFile(), clang::FrontendAction::Execute(), clang::DiagnosticConsumer::finish(), clang::DiagnosticsEngine::getClient(), getDiagnosticOpts(), getDiagnostics(), getFileManager(), getFrontendOpts(), getHeaderSearchOpts(), getInvocation(), getLangOpts(), clang::DiagnosticConsumer::getNumErrors(), clang::DiagnosticConsumer::getNumWarnings(), getSourceManager(), getTarget(), hasDiagnostics(), hasFileManager(), hasSourceManager(), hasTarget(), clang::FrontendAction::isModelParsingAction(), clang::TargetInfo::noSignedCharForObjCBool(), clang::FileManager::PrintStats(), clang::frontend::RewriteObjC, setTarget(), and clang::FrontendOptions::ShowStats.

Referenced by clang::ExecuteCompilerInvocation(), and clang::tooling::FrontendActionFactory::runInvocation().

Definition at line 443 of file CompilerInstance.h.

Referenced by createModuleManager(), and createSema().

Definition at line 486 of file CompilerInstance.h.

Referenced by clang::ASTFrontendAction::ExecuteAction().

Definition at line 235 of file CompilerInstance.h.

Definition at line 239 of file CompilerInstance.h.

Referenced by createPreprocessor().

Definition at line 242 of file CompilerInstance.h.

Definition at line 249 of file CompilerInstance.h.

Definition at line 260 of file CompilerInstance.h.

llvm::Timer& clang::CompilerInstance::getFrontendTimer ( ) const [inline]

Definition at line 502 of file CompilerInstance.h.

Referenced by clang::FrontendAction::Execute().

Definition at line 267 of file CompilerInstance.h.

Definition at line 274 of file CompilerInstance.h.

Definition at line 124 of file CompilerInstance.cpp.

Referenced by compileModuleImpl().

IntrusiveRefCntPtr< ASTReader > CompilerInstance::getModuleManager ( ) const

Definition at line 281 of file CompilerInstance.h.

Definition at line 288 of file CompilerInstance.h.

Definition at line 295 of file CompilerInstance.h.

Definition at line 340 of file CompilerInstance.h.

References hasVirtualFileSystem().

Referenced by compileModuleImpl().

Definition at line 706 of file CompilerInstance.h.

References clang::ModuleLoader::HadFatalFailure.

Definition at line 484 of file CompilerInstance.h.

Referenced by clang::ASTFrontendAction::ExecuteAction().

Definition at line 500 of file CompilerInstance.h.

Referenced by clang::FrontendAction::Execute().

Definition at line 205 of file CompilerInstance.h.

Definition at line 378 of file CompilerInstance.h.

Referenced by clang::FrontendAction::BeginSourceFile(), and ExecuteAction().

Definition at line 324 of file CompilerInstance.h.

Referenced by ExecuteAction().

InitializeSourceManager - Initialize the source manager to set InputFile as the main file.

Returns:
True on success.

Definition at line 684 of file CompilerInstance.cpp.

References getDiagnostics(), getFileManager(), getFrontendOpts(), and getSourceManager().

Referenced by clang::FrontendAction::BeginSourceFile().

bool CompilerInstance::InitializeSourceManager ( const FrontendInputFile Input,
DiagnosticsEngine Diags,
FileManager FileMgr,
SourceManager SourceMgr,
const FrontendOptions Opts 
) [static]

Load, create, or return global module. This function returns an existing global module index, if one had already been loaded or created, or loads one if it exists, or creates one if it doesn't exist. Also, importantly, if the index doesn't cover all the modules in the module map, it will be update to do so here, because of its use in searching for needed module imports and associated fixit messages.

Parameters:
TriggerLocThe location for what triggered the load.
Returns:
Returns null if load failed.

Implements clang::ModuleLoader.

Definition at line 1608 of file CompilerInstance.cpp.

References clang::ModuleLoader::buildingModule(), createModuleManager(), clang::Module::DefinitionLoc, clang::Module::getASTFile(), getFileManager(), clang::Preprocessor::getHeaderSearchInfo(), clang::HeaderSearch::getModuleMap(), getPreprocessor(), hasFileManager(), hasPreprocessor(), clang::Module::Hidden, loadModule(), clang::ModuleMap::module_begin(), clang::ModuleMap::module_end(), clang::Module::Name, shouldBuildGlobalModuleIndex(), and clang::GlobalModuleIndex::writeIndex().

Referenced by lookupMissingImports().

ModuleLoadResult CompilerInstance::loadModule ( SourceLocation  ImportLoc,
ModuleIdPath  Path,
Module::NameVisibilityKind  Visibility,
bool  IsInclusionDirective 
) [override, virtual]

Attempt to load the given module.

This routine attempts to load the module described by the given parameters.

Parameters:
ImportLocThe location of the 'import' keyword.
PathThe identifiers (and their locations) of the module "path", e.g., "std.vector" would be split into "std" and "vector".
VisibilityThe visibility provided for the names in the loaded module.
IsInclusionDirectiveIndicates that this module is being loaded implicitly, due to the presence of an inclusion directive. Otherwise, it is being loaded due to an import declaration.
Returns:
If successful, returns the loaded module. Otherwise, returns NULL to indicate that the module could not be loaded.

Implements clang::ModuleLoader.

Definition at line 1320 of file CompilerInstance.cpp.

References clang::DeclContext::addDecl(), clang::ASTReader::ARR_Missing, clang::ASTReader::ARR_OutOfDate, BestEditDistance, checkConfigMacro(), compileAndLoadModule(), clang::Module::ConfigMacros, clang::ASTReader::ConfigurationMismatch, clang::ImportDecl::CreateImplicit(), createModuleManager(), clang::FixItHint::CreateReplacement(), clang::LangOptions::CurrentModule, clang::PreprocessorOptions::FailedModules, clang::ASTReader::Failure, clang::Module::HeaderDirective::FileName, clang::Module::HeaderDirective::FileNameLoc, clang::Module::findSubmodule(), getASTContext(), getDiagnostics(), clang::Module::getFullModuleName(), getLangOpts(), clang::SourceManager::getModuleBuildStack(), getPreprocessor(), getPreprocessorOpts(), getSourceManager(), getTarget(), clang::Module::getTopLevelModule(), clang::ASTContext::getTranslationUnitDecl(), clang::ASTReader::HadErrors, clang::ModuleLoader::HadFatalFailure, hasASTContext(), clang::LangOptions::ImplementationOfModule, clang::Module::isAvailable(), clang::Module::IsFromModuleFile, clang::SourceLocation::isInvalid(), clang::Module::HeaderDirective::IsUmbrella, clang::SourceLocation::isValid(), clang::ASTReader::Missing, clang::serialization::MK_ExplicitModule, clang::serialization::MK_ImplicitModule, clang::ASTReader::OutOfDate, clang::DiagnosticsEngine::Report(), clang::Module::submodule_begin(), clang::Module::submodule_end(), clang::ASTReader::Success, and clang::ASTReader::VersionMismatch.

Referenced by loadGlobalModuleIndex().

bool CompilerInstance::loadModuleFile ( StringRef  FileName)
bool CompilerInstance::lookupMissingImports ( StringRef  Name,
SourceLocation  TriggerLoc 
) [override, virtual]

Check global module index for missing imports.

Parameters:
NameThe symbol name to look for.
TriggerLocThe location for what triggered the load.
Returns:
Returns true if any modules with that symbol found.

Implements clang::ModuleLoader.

Definition at line 1666 of file CompilerInstance.cpp.

References clang::ModuleLoader::buildingModule(), loadGlobalModuleIndex(), and clang::GlobalModuleIndex::lookupIdentifier().

void CompilerInstance::makeModuleVisible ( Module Mod,
Module::NameVisibilityKind  Visibility,
SourceLocation  ImportLoc,
bool  Complain 
) [override, virtual]

Make the given module visible.

Implements clang::ModuleLoader.

Definition at line 1601 of file CompilerInstance.cpp.

Definition at line 425 of file CompilerInstance.h.

References clang::BuryPointer().

Referenced by clang::FrontendAction::EndSourceFile().

Definition at line 366 of file CompilerInstance.h.

References clang::BuryPointer().

Referenced by clang::FrontendAction::EndSourceFile().

Definition at line 406 of file CompilerInstance.h.

References clang::BuryPointer().

Referenced by clang::FrontendAction::EndSourceFile().

Definition at line 1689 of file CompilerInstance.cpp.

References clang::BuryPointer(), and takeSema().

Referenced by clang::FrontendAction::EndSourceFile().

Definition at line 386 of file CompilerInstance.h.

References clang::BuryPointer().

Referenced by clang::FrontendAction::EndSourceFile().

void CompilerInstance::setASTConsumer ( std::unique_ptr< ASTConsumer Value)

setASTConsumer - Replace the current AST consumer; the compiler instance takes ownership of Value.

Definition at line 104 of file CompilerInstance.cpp.

Referenced by clang::FrontendAction::BeginSourceFile(), and clang::FrontendAction::EndSourceFile().

setASTContext - Replace the current AST context.

Definition at line 98 of file CompilerInstance.cpp.

References Context.

Referenced by clang::FrontendAction::BeginSourceFile(), and clang::FrontendAction::EndSourceFile().

Set the flag indicating whether we should (re)build the global module index.

Definition at line 220 of file CompilerInstance.h.

Referenced by compileModuleImpl().

setCodeCompletionConsumer - Replace the current code completion consumer; the compiler instance takes ownership of Value.

Definition at line 108 of file CompilerInstance.cpp.

Referenced by createCodeCompletionConsumer().

setDiagnostics - Replace the current diagnostics engine.

Definition at line 76 of file CompilerInstance.cpp.

setInvocation - Replace the current invocation.

Definition at line 65 of file CompilerInstance.cpp.

Referenced by clang::tooling::FrontendActionFactory::runInvocation().

Definition at line 128 of file CompilerInstance.cpp.

void CompilerInstance::setModuleManager ( IntrusiveRefCntPtr< ASTReader Reader)

Definition at line 119 of file CompilerInstance.cpp.

Referenced by clang::FrontendAction::BeginSourceFile().

Replace the current preprocessor.

Definition at line 96 of file CompilerInstance.cpp.

Referenced by clang::FrontendAction::BeginSourceFile().

Replace the current Sema; the compiler instance takes ownership of S.

Definition at line 100 of file CompilerInstance.cpp.

Referenced by clang::FrontendAction::EndSourceFile().

setSourceManager - Replace the current source manager.

Definition at line 92 of file CompilerInstance.cpp.

References SourceMgr.

Referenced by clang::FixItRecompile::BeginInvocation(), and clang::FrontendAction::BeginSourceFile().

Replace the current diagnostics engine.

Definition at line 80 of file CompilerInstance.cpp.

Referenced by ExecuteAction().

void clang::CompilerInstance::setVirtualFileSystem ( IntrusiveRefCntPtr< vfs::FileSystem FS) [inline]

Replace the current virtual file system.

Note:
Most clients should use setFileManager, which will implicitly reset the virtual file system to the one contained in the file manager.

Definition at line 350 of file CompilerInstance.h.

Referenced by clang::FrontendAction::BeginSourceFile(), and createFileManager().

Indicates whether we should (re)build the global module index.

Definition at line 69 of file CompilerInstance.cpp.

References clang::FrontendOptions::GenerateGlobalModuleIndex, and getFrontendOpts().

Referenced by clang::FrontendAction::Execute(), and loadGlobalModuleIndex().

takeASTConsumer - Remove the current AST consumer and give ownership to the caller.

Definition at line 450 of file CompilerInstance.h.

Referenced by clang::FrontendAction::EndSourceFile().

std::unique_ptr< Sema > CompilerInstance::takeSema ( )

Definition at line 112 of file CompilerInstance.cpp.

Referenced by resetAndLeakSema().


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