A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/CompilerInstance_8h_source.html below:

clang: include/clang/Frontend/CompilerInstance.h Source File

9#ifndef LLVM_CLANG_FRONTEND_COMPILERINSTANCE_H_ 10#define LLVM_CLANG_FRONTEND_COMPILERINSTANCE_H_ 21#include "llvm/ADT/ArrayRef.h" 22#include "llvm/ADT/DenseMap.h" 23#include "llvm/ADT/IntrusiveRefCntPtr.h" 24#include "llvm/ADT/StringRef.h" 25#include "llvm/Support/BuryPointer.h" 26#include "llvm/Support/FileSystem.h" 27#include "llvm/Support/VirtualFileSystem.h" 45namespace

serialization {

49class

CodeCompleteConsumer;

50class

DiagnosticsEngine;

51class

DiagnosticConsumer;

54class

InMemoryModuleCache;

82

std::shared_ptr<CompilerInvocation> Invocation;

103

std::shared_ptr<Preprocessor> PP;

112

std::unique_ptr<ASTConsumer> Consumer;

115

std::unique_ptr<CodeCompleteConsumer> CompletionConsumer;

118

std::unique_ptr<Sema> TheSema;

121

std::unique_ptr<llvm::TimerGroup> timerGroup;

124

std::unique_ptr<llvm::Timer> FrontendTimer;

130

std::shared_ptr<ModuleDependencyCollector> ModuleDepCollector;

133

std::shared_ptr<PCHContainerOperations> ThePCHContainerOperations;

135

std::vector<std::shared_ptr<DependencyCollector>> DependencyCollectors;

138 class

FailedModulesSet {

139

llvm::StringSet<> Failed;

142 bool

hasAlreadyFailed(StringRef module) {

return

Failed.count(module) > 0; }

144 void

addFailed(StringRef module) { Failed.insert(module); }

153

std::shared_ptr<FailedModulesSet> FailedModules;

157

std::map<std::string, std::string, std::less<>> BuiltModules;

160 bool

DeleteBuiltModules =

true

;

172 bool

BuildGlobalModuleIndex =

false

;

175 bool

HaveFullGlobalModuleIndex =

false

;

178 bool

DisableGeneratingGlobalModuleIndex =

false

;

181

std::unique_ptr<raw_ostream> OwnedVerboseOutputStream;

184

raw_ostream *VerboseOutputStream = &llvm::errs();

193

std::optional<llvm::sys::fs::TempFile>

File

;

195

OutputFile(std::string filename,

196

std::optional<llvm::sys::fs::TempFile> file)

197

:

Filename

(std::move(filename)),

File

(std::move(file)) {}

201

std::list<OutputFile> OutputFiles;

204

std::unique_ptr<llvm::raw_pwrite_stream> OutputStream;

210

std::shared_ptr<PCHContainerOperations> PCHContainerOps =

211

std::make_shared<PCHContainerOperations>(),

260

assert(Invocation &&

"Compiler instance has no invocation!"

);

275

BuildGlobalModuleIndex = Build;

285 return

Invocation->getCodeGenOpts();

288 return

Invocation->getCodeGenOpts();

292 return

Invocation->getDependencyOutputOpts();

295 return

Invocation->getDependencyOutputOpts();

299 return

Invocation->getDiagnosticOpts();

302 return

Invocation->getDiagnosticOpts();

306 return

Invocation->getFileSystemOpts();

309 return

Invocation->getFileSystemOpts();

313 return

Invocation->getFrontendOpts();

316 return

Invocation->getFrontendOpts();

320 return

Invocation->getHeaderSearchOpts();

323 return

Invocation->getHeaderSearchOpts();

326 return

Invocation->getHeaderSearchOptsPtr();

331 return

Invocation->getAPINotesOpts();

337 return

Invocation->getLangOptsPtr();

341 return

Invocation->getPreprocessorOpts();

344 return

Invocation->getPreprocessorOpts();

348 return

Invocation->getPreprocessorOutputOpts();

351 return

Invocation->getPreprocessorOutputOpts();

355 return

Invocation->getTargetOpts();

358 return

Invocation->getTargetOpts();

369

assert(Diagnostics &&

"Compiler instance has no diagnostics!"

);

374

assert(Diagnostics &&

"Compiler instance has no diagnostics!"

);

382

assert(Diagnostics && Diagnostics->getClient() &&

383 "Compiler instance has no diagnostic client!"

);

384 return

*Diagnostics->getClient();

399 return

*VerboseOutputStream;

409

assert(

Target

&&

"Compiler instance has no target!"

);

414

assert(

Target

&&

"Compiler instance has no target!"

);

447

assert(FileMgr &&

"Compiler instance has no file manager!"

);

452

assert(FileMgr &&

"Compiler instance has no file manager!"

);

457

llvm::BuryPointer(FileMgr.get());

458

FileMgr.resetWithoutRelease();

472

assert(SourceMgr &&

"Compiler instance has no source manager!"

);

477

assert(SourceMgr &&

"Compiler instance has no source manager!"

);

482

llvm::BuryPointer(SourceMgr.get());

483

SourceMgr.resetWithoutRelease();

497

assert(PP &&

"Compiler instance has no preprocessor!"

);

504

llvm::BuryPointer(

new

std::shared_ptr<Preprocessor>(PP));

517

assert(Context &&

"Compiler instance has no AST context!"

);

522

assert(Context &&

"Compiler instance has no AST context!"

);

527

llvm::BuryPointer(Context.get());

528

Context.resetWithoutRelease();

545

assert(Consumer &&

"Compiler instance has no AST consumer!"

);

560 bool hasSema

()

const

{

return

(

bool

)TheSema; }

563

assert(TheSema &&

"Compiler instance has no Sema object!"

);

579

std::shared_ptr<ModuleDependencyCollector> Collector);

582 return

ThePCHContainerOperations;

588

assert(Invocation &&

"cannot determine module format without invocation"

);

590 auto

*Writer = ThePCHContainerOperations->getWriterOrNull(Format);

593

Diagnostics->Report(diag::err_module_format_unhandled) << Format;

594

llvm::report_fatal_error(

"unknown module format"

);

602

assert(Invocation &&

"cannot determine module format without invocation"

);

604 auto

*Reader = ThePCHContainerOperations->getReaderOrNull(Format);

607

Diagnostics->Report(diag::err_module_format_unhandled) << Format;

608

llvm::report_fatal_error(

"unknown module format"

);

620

assert(CompletionConsumer &&

621 "Compiler instance has no code completion consumer!"

);

622 return

*CompletionConsumer;

636

assert(FrontendTimer &&

"Compiler instance has no frontend timer!"

);

637 return

*FrontendTimer;

647

FailedModules = std::make_shared<FailedModulesSet>();

651 return

FailedModules;

689 bool

ShouldOwnClient =

true

);

712 bool

ShouldOwnClient =

true

,

740 bool

AllowPCHWithCompilerErrors,

void

*DeserializationListener,

741 bool

OwnDeserializationListener);

747

StringRef

Path

, StringRef Sysroot,

752 ArrayRef

<std::shared_ptr<ModuleFileExtension>> Extensions,

753 ArrayRef

<std::shared_ptr<DependencyCollector>> DependencyCollectors,

754 void

*DeserializationListener,

bool

OwnDeserializationListener,

755 bool Preamble

,

bool

UseGlobalModuleIndex);

785 bool

Binary =

true

, StringRef BaseInput =

""

, StringRef Extension =

""

,

786 bool

RemoveFileOnSignal =

true

,

bool

CreateMissingDirectories =

false

,

787 bool

ForceUseTemporary =

false

);

793

std::unique_ptr<raw_pwrite_stream>

794 createOutputFile

(StringRef OutputPath,

bool

Binary,

bool

RemoveFileOnSignal,

795 bool

UseTemporary,

bool

CreateMissingDirectories =

false

);

816

createOutputFileImpl(StringRef OutputPath,

bool

Binary,

817 bool

RemoveFileOnSignal,

bool

UseTemporary,

818 bool

CreateMissingDirectories);

845

OutputStream = std::move(OutStream);

849 return

std::move(OutputStream);

872 bool

IsInclusionDirective);

877 bool

IsInclusionDirective)

override

;

880

StringRef Source)

override

;

894

DependencyCollectors.push_back(std::move(Listener));

Defines the Diagnostic-related interfaces.

llvm::MachO::Target Target

Defines the SourceManager interface.

Tracks various options which control how API notes are found and handled.

ASTConsumer - This is an abstract interface that should be implemented by clients that read ASTs.

Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...

Stores options for the analyzer from the command line.

Abstract interface for a consumer of code-completion information.

Options controlling the behavior of code completion.

CodeGenOptions - Track various options which control how the code is optimized and passed to the back...

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

void setFileManager(FileManager *Value)

Replace the current file manager and virtual file system.

void setSourceManager(SourceManager *Value)

setSourceManager - Replace the current source manager.

void createPCHExternalASTSource(StringRef Path, DisableValidationForModuleKind DisableValidation, bool AllowPCHWithCompilerErrors, void *DeserializationListener, bool OwnDeserializationListener)

Create an external AST source to read a PCH file and attach it to the AST context.

DiagnosticConsumer & getDiagnosticClient() const

~CompilerInstance() override

void createPreprocessor(TranslationUnitKind TUKind)

Create the preprocessor, using the invocation, file, and source managers, and replace any existing on...

AnalyzerOptions & getAnalyzerOpts()

bool lookupMissingImports(StringRef Name, SourceLocation TriggerLoc) override

Check global module index for missing imports.

void createSourceManager(FileManager &FileMgr)

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

FileManager * createFileManager(IntrusiveRefCntPtr< llvm::vfs::FileSystem > VFS=nullptr)

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

const HeaderSearchOptions & getHeaderSearchOpts() const

DependencyOutputOptions & getDependencyOutputOpts()

bool hasFileManager() const

const DependencyOutputOptions & getDependencyOutputOpts() const

std::shared_ptr< Preprocessor > getPreprocessorPtr()

TargetInfo * getAuxTarget() const

const PCHContainerReader & getPCHContainerReader() const

Return the appropriate PCHContainerReader depending on the current CodeGenOptions.

DiagnosticsEngine & getDiagnostics() const

Get the current diagnostics engine.

GlobalModuleIndex * loadGlobalModuleIndex(SourceLocation TriggerLoc) override

Load, create, or return global module.

raw_ostream & getVerboseOutputStream()

Get the current stream for verbose output.

llvm::TimerGroup & getTimerGroup() const

std::unique_ptr< raw_pwrite_stream > createDefaultOutputFile(bool Binary=true, StringRef BaseInput="", StringRef Extension="", bool RemoveFileOnSignal=true, bool CreateMissingDirectories=false, bool ForceUseTemporary=false)

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

void setExternalSemaSource(IntrusiveRefCntPtr< ExternalSemaSource > ESS)

void createDiagnostics(llvm::vfs::FileSystem &VFS, DiagnosticConsumer *Client=nullptr, bool ShouldOwnClient=true)

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

const DiagnosticOptions & getDiagnosticOpts() const

std::string getSpecificModuleCachePath()

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

Attempt to load the given module.

void setInvocation(std::shared_ptr< CompilerInvocation > Value)

setInvocation - Replace the current invocation.

std::shared_ptr< FailedModulesSet > getFailedModulesSetPtr() const

const CodeGenOptions & getCodeGenOpts() const

FileSystemOptions & getFileSystemOpts()

llvm::Timer & getFrontendTimer() const

const TargetOptions & getTargetOpts() const

bool InitializeSourceManager(const FrontendInputFile &Input)

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

void setOutputStream(std::unique_ptr< llvm::raw_pwrite_stream > OutStream)

FileManager & getFileManager() const

Return the current file manager to the caller.

void setBuildGlobalModuleIndex(bool Build)

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

IntrusiveRefCntPtr< DiagnosticsEngine > getDiagnosticsPtr() const

std::unique_ptr< Sema > takeSema()

const PreprocessorOptions & getPreprocessorOpts() const

void printDiagnosticStats()

At the end of a compilation, print the number of warnings/errors.

void resetAndLeakSourceManager()

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

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

PreprocessorOutputOptions & getPreprocessorOutputOpts()

IntrusiveRefCntPtr< FileManager > getFileManagerPtr() const

IntrusiveRefCntPtr< ASTContext > getASTContextPtr() const

const PreprocessorOutputOptions & getPreprocessorOutputOpts() const

IntrusiveRefCntPtr< ASTReader > getASTReader() const

void setTarget(TargetInfo *Value)

Replace the current Target.

void setModuleDepCollector(std::shared_ptr< ModuleDependencyCollector > Collector)

std::shared_ptr< LangOptions > getLangOptsPtr() const

InMemoryModuleCache & getModuleCache() const

void addDependencyCollector(std::shared_ptr< DependencyCollector > Listener)

void createASTContext()

Create the AST context.

std::unique_ptr< raw_pwrite_stream > createOutputFile(StringRef OutputPath, bool Binary, bool RemoveFileOnSignal, bool UseTemporary, bool CreateMissingDirectories=false)

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

bool hasASTContext() const

void createModuleFromSource(SourceLocation ImportLoc, StringRef ModuleName, StringRef Source) override

Attempt to create the given module from the specified source buffer.

void resetAndLeakFileManager()

std::shared_ptr< HeaderSearchOptions > getHeaderSearchOptsPtr() const

void setASTContext(ASTContext *Value)

setASTContext - Replace the current AST context.

Preprocessor & getPreprocessor() const

Return the current preprocessor.

ASTContext & getASTContext() const

void setFailedModulesSet(std::shared_ptr< FailedModulesSet > FMS)

void LoadRequestedPlugins()

Load the list of plugins requested in the FrontendOptions.

TargetOptions & getTargetOpts()

IntrusiveRefCntPtr< TargetInfo > getTargetPtr() const

void setASTReader(IntrusiveRefCntPtr< ASTReader > Reader)

std::unique_ptr< llvm::raw_pwrite_stream > takeOutputStream()

bool hasInvocation() const

FrontendOptions & getFrontendOpts()

const FrontendOptions & getFrontendOpts() const

std::shared_ptr< ModuleDependencyCollector > getModuleDepCollector() const

std::shared_ptr< CompilerInvocation > getInvocationPtr()

bool hasDiagnostics() const

bool hadModuleLoaderFatalFailure() const

void setSema(Sema *S)

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

HeaderSearchOptions & getHeaderSearchOpts()

void createFrontendTimer()

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

void setDiagnostics(DiagnosticsEngine *Value)

setDiagnostics - Replace the current diagnostics engine.

bool hasCodeCompletionConsumer() const

void resetAndLeakASTContext()

const LangOptions & getLangOpts() const

bool hasFailedModulesSet() const

CompilerInvocation & getInvocation()

const PCHContainerWriter & getPCHContainerWriter() const

Return the appropriate PCHContainerWriter depending on the current CodeGenOptions.

void setVerboseOutputStream(raw_ostream &Value)

Replace the current stream for verbose output.

void resetAndLeakPreprocessor()

std::unique_ptr< ASTConsumer > takeASTConsumer()

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

PreprocessorOptions & getPreprocessorOpts()

ASTConsumer & getASTConsumer() const

TargetInfo & getTarget() const

llvm::vfs::FileSystem & getVirtualFileSystem() const

const FileSystemOptions & getFileSystemOpts() const

void createCodeCompletionConsumer()

Create a code completion consumer using the invocation; note that this will cause the source manager ...

void setCodeCompletionConsumer(CodeCompleteConsumer *Value)

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

bool ExecuteAction(FrontendAction &Act)

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

std::shared_ptr< PCHContainerOperations > getPCHContainerOperations() const

void clearOutputFiles(bool EraseFiles)

clearOutputFiles - Clear the output file list.

DiagnosticOptions & getDiagnosticOpts()

LangOptions & getLangOpts()

const APINotesOptions & getAPINotesOpts() const

CodeGenOptions & getCodeGenOpts()

SourceManager & getSourceManager() const

Return the current source manager.

IntrusiveRefCntPtr< SourceManager > getSourceManagerPtr() const

CodeCompleteConsumer & getCodeCompletionConsumer() const

bool shouldBuildGlobalModuleIndex() const

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

bool hasSourceManager() const

bool hasASTConsumer() const

APINotesOptions & getAPINotesOpts()

std::unique_ptr< raw_pwrite_stream > createNullOutputFile()

void setAuxTarget(TargetInfo *Value)

Replace the current AuxTarget.

void makeModuleVisible(Module *Mod, Module::NameVisibilityKind Visibility, SourceLocation ImportLoc) override

Make the given module visible.

void createFailedModulesSet()

bool loadModuleFile(StringRef FileName, serialization::ModuleFile *&LoadedModuleFile)

bool hasPreprocessor() const

void setPreprocessor(std::shared_ptr< Preprocessor > Value)

Replace the current preprocessor.

void createSema(TranslationUnitKind TUKind, CodeCompleteConsumer *CompletionConsumer)

Create the Sema object to be used for parsing.

Helper class for holding the data necessary to invoke the compiler.

DependencyOutputOptions - Options for controlling the compiler dependency file generation.

Abstract interface, implemented by clients of the front-end, which formats and prints fully processed...

Options for controlling the compiler diagnostics engine.

Concrete class used by the front-end to report problems and issues.

Implements support for file system lookup, file system caching, and directory search management.

Keeps track of options that affect how file operations are performed.

Abstract base class for actions which can be performed by the frontend.

An input file for the front end.

FrontendOptions - Options for controlling the behavior of the frontend.

A global index for a set of module files, providing information about the identifiers within those mo...

In-memory cache for modules.

Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...

Describes the result of attempting to load a module.

Abstract interface for a module loader.

Describes a module or submodule.

NameVisibilityKind

Describes the visibility of the various names within a particular module.

This abstract interface provides operations for unwrapping containers for serialized ASTs (precompile...

This abstract interface provides operations for creating containers for serialized ASTs (precompiled ...

PreprocessorOptions - This class is used for passing the various options used in preprocessor initial...

PreprocessorOutputOptions - Options for controlling the C preprocessor output (e.g....

Engages in a tight little dance with the lexer to efficiently preprocess tokens.

Sema - This implements semantic analysis and AST building for C.

Encodes a location in the source.

This class handles loading and caching of source files into memory.

Exposes information about the current target.

Options for controlling the target.

Information about a module that has been loaded by the ASTReader.

Defines the clang::TargetInfo interface.

The JSON file list parser is used to communicate input to InstallAPI.

@ Module

Module linkage, which indicates that the entity can be referred to from other translation units withi...

TranslationUnitKind

Describes the kind of translation unit being processed.

DisableValidationForModuleKind

Whether to disable the normal validation performed on precompiled headers and module files when they ...

Visibility

Describes the different kinds of visibility that a declaration may have.

Diagnostic wrappers for TextAPI types for error reporting.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4