clang  10.0.0svn
Public Member Functions | List of all members
clang::CompilerInvocation Class Reference

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

#include "clang/Frontend/CompilerInvocation.h"

Inheritance diagram for clang::CompilerInvocation:
Inheritance graph
Collaboration diagram for clang::CompilerInvocation:
Collaboration graph

Public Member Functions

 CompilerInvocation ()
Option Subgroups
AnalyzerOptionsRef getAnalyzerOpts () const
MigratorOptionsgetMigratorOpts ()
const MigratorOptionsgetMigratorOpts () const
CodeGenOptionsgetCodeGenOpts ()
const CodeGenOptionsgetCodeGenOpts () const
DependencyOutputOptionsgetDependencyOutputOpts ()
const DependencyOutputOptionsgetDependencyOutputOpts () const
FileSystemOptionsgetFileSystemOpts ()
const FileSystemOptionsgetFileSystemOpts () const
FrontendOptionsgetFrontendOpts ()
const FrontendOptionsgetFrontendOpts () const
PreprocessorOutputOptionsgetPreprocessorOutputOpts ()
const PreprocessorOutputOptionsgetPreprocessorOutputOpts () const
- Public Member Functions inherited from clang::CompilerInvocationBase
 CompilerInvocationBase ()
 CompilerInvocationBase (const CompilerInvocationBase &X)
CompilerInvocationBaseoperator= (const CompilerInvocationBase &)=delete
 ~CompilerInvocationBase ()
LangOptionsgetLangOpts ()
const LangOptionsgetLangOpts () const
TargetOptionsgetTargetOpts ()
const TargetOptionsgetTargetOpts () const
DiagnosticOptionsgetDiagnosticOpts () const
HeaderSearchOptionsgetHeaderSearchOpts ()
const HeaderSearchOptionsgetHeaderSearchOpts () const
std::shared_ptr< HeaderSearchOptionsgetHeaderSearchOptsPtr () const
std::shared_ptr< PreprocessorOptionsgetPreprocessorOptsPtr ()
PreprocessorOptionsgetPreprocessorOpts ()
const PreprocessorOptionsgetPreprocessorOpts () const

Utility Methods

std::string getModuleHash () const
 Retrieve a module hash string that is suitable for uniquely identifying the conditions under which the module was built. More...
static bool CreateFromArgs (CompilerInvocation &Res, ArrayRef< const char *> CommandLineArgs, DiagnosticsEngine &Diags)
 Create a compiler invocation from a list of input options. More...
static std::string GetResourcesPath (const char *Argv0, void *MainAddr)
 Get the directory where the compiler headers reside, relative to the compiler binary (found by the passed in arguments). More...
static void setLangDefaults (LangOptions &Opts, InputKind IK, const llvm::Triple &T, PreprocessorOptions &PPOpts, LangStandard::Kind LangStd=LangStandard::lang_unspecified)
 Set language defaults for the given input language and language standard in the given LangOptions object. More...

Additional Inherited Members

- Public Attributes inherited from clang::CompilerInvocationBase
std::shared_ptr< LangOptionsLangOpts
 Options controlling the language variant. More...
std::shared_ptr< TargetOptionsTargetOpts
 Options controlling the target. More...
IntrusiveRefCntPtr< DiagnosticOptionsDiagnosticOpts
 Options controlling the diagnostic engine. More...
std::shared_ptr< HeaderSearchOptionsHeaderSearchOpts
 Options controlling the #include directive. More...
std::shared_ptr< PreprocessorOptionsPreprocessorOpts
 Options controlling the preprocessor (aside from #include handling). More...

Detailed Description

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

This class is designed to represent an abstract "invocation" of the compiler, including data such as the include paths, the code generation options, the warning flags, and so on.

Definition at line 121 of file CompilerInvocation.h.

Constructor & Destructor Documentation

◆ CompilerInvocation()

clang::CompilerInvocation::CompilerInvocation ( )

Definition at line 143 of file CompilerInvocation.h.

Member Function Documentation

◆ CreateFromArgs()

bool CompilerInvocation::CreateFromArgs ( CompilerInvocation Res,
ArrayRef< const char *>  CommandLineArgs,
DiagnosticsEngine Diags 

Create a compiler invocation from a list of input options.

true on success.
false if an error was encountered while parsing the arguments and attempts to recover and continue parsing the rest of the arguments. The recovery is best-effort and only guarantees that Res will end up in one of the vaild-to-access (albeit arbitrary) states.
[out]Res- The resulting invocation.

Definition at line 3389 of file CompilerInvocation.cpp.

References clang::FrontendOptions::AuxTriple, clang::driver::options::CC1Option, clang::LangOptions::CommentOpts, clang::SanitizerSet::empty(), getAnalyzerOpts(), getCodeGenOpts(), getDependencyOutputOpts(), clang::CompilerInvocationBase::getDiagnosticOpts(), clang::driver::getDriverOptTable(), getFileSystemOpts(), getFrontendOpts(), clang::CompilerInvocationBase::getHeaderSearchOpts(), clang::CompilerInvocationBase::getLangOpts(), clang::getLastArgIntValue(), getMigratorOpts(), clang::CompilerInvocationBase::getPreprocessorOpts(), getPreprocessorOutputOpts(), clang::CompilerInvocationBase::getTargetOpts(), clang::SanitizerSet::has(), clang::TargetOptions::HostTriple, clang::if(), clang::LangOptions::IsHeaderFile, clang::CompilerInvocationBase::LangOpts, clang::LLVM_IR, clang::FrontendOptions::LLVMArgs, clang::DependencyOutputOptions::OutputFile, ParseAnalyzerArgs(), ParseCodeGenArgs(), ParseCommentArgs(), ParseDependencyOutputArgs(), clang::ParseDiagnosticArgs(), ParseFileSystemArgs(), ParseFrontendArgs(), ParseHeaderSearchArgs(), ParseLangArgs(), ParseMigratorArgs(), ParsePreprocessorArgs(), ParsePreprocessorOutputArgs(), parseSanitizerKinds(), ParseTargetArgs(), clang::InputKind::Precompiled, clang::FrontendOptions::ProgramAction, clang::DiagnosticsEngine::Report(), clang::frontend::RewriteObjC, clang::LangOptions::Sanitize, clang::DependencyOutputOptions::Targets, clang::TargetOptions::Triple, clang::DiagnosticOptions::Warnings, and clang::FileSystemOptions::WorkingDir.

Referenced by clang::createInvocationFromCommandLine(), and clang::tooling::newInvocation().

◆ getAnalyzerOpts()

AnalyzerOptionsRef clang::CompilerInvocation::getAnalyzerOpts ( ) const

Definition at line 191 of file CompilerInvocation.h.

Referenced by CreateFromArgs().

◆ getCodeGenOpts() [1/2]

CodeGenOptions& clang::CompilerInvocation::getCodeGenOpts ( )

Definition at line 196 of file CompilerInvocation.h.

Referenced by CreateFromArgs().

◆ getCodeGenOpts() [2/2]

const CodeGenOptions& clang::CompilerInvocation::getCodeGenOpts ( ) const

Definition at line 197 of file CompilerInvocation.h.

◆ getDependencyOutputOpts() [1/2]

DependencyOutputOptions& clang::CompilerInvocation::getDependencyOutputOpts ( )

Definition at line 199 of file CompilerInvocation.h.

Referenced by CreateFromArgs().

◆ getDependencyOutputOpts() [2/2]

const DependencyOutputOptions& clang::CompilerInvocation::getDependencyOutputOpts ( ) const

Definition at line 203 of file CompilerInvocation.h.

◆ getFileSystemOpts() [1/2]

FileSystemOptions& clang::CompilerInvocation::getFileSystemOpts ( )

Definition at line 207 of file CompilerInvocation.h.

Referenced by CreateFromArgs(), and createInvocationForMigration().

◆ getFileSystemOpts() [2/2]

const FileSystemOptions& clang::CompilerInvocation::getFileSystemOpts ( ) const

Definition at line 209 of file CompilerInvocation.h.

◆ getFrontendOpts() [1/2]

FrontendOptions& clang::CompilerInvocation::getFrontendOpts ( )

◆ getFrontendOpts() [2/2]

const FrontendOptions& clang::CompilerInvocation::getFrontendOpts ( ) const

Definition at line 214 of file CompilerInvocation.h.

◆ getMigratorOpts() [1/2]

MigratorOptions& clang::CompilerInvocation::getMigratorOpts ( )

◆ getMigratorOpts() [2/2]

const MigratorOptions& clang::CompilerInvocation::getMigratorOpts ( ) const

Definition at line 194 of file CompilerInvocation.h.

◆ getModuleHash()

std::string CompilerInvocation::getModuleHash ( ) const

◆ getPreprocessorOutputOpts() [1/2]

PreprocessorOutputOptions& clang::CompilerInvocation::getPreprocessorOutputOpts ( )

Definition at line 216 of file CompilerInvocation.h.

Referenced by CreateFromArgs().

◆ getPreprocessorOutputOpts() [2/2]

const PreprocessorOutputOptions& clang::CompilerInvocation::getPreprocessorOutputOpts ( ) const

Definition at line 220 of file CompilerInvocation.h.

References clang::createVFSFromCompilerInvocation().

◆ GetResourcesPath()

std::string CompilerInvocation::GetResourcesPath ( const char *  Argv0,
void *  MainAddr 

Get the directory where the compiler headers reside, relative to the compiler binary (found by the passed in arguments).

Argv0- The program path (from argv[0]), for finding the builtin compiler path.
MainAddr- The address of main (or some other function in the main executable), for finding the builtin compiler path.

Definition at line 2023 of file CompilerInvocation.cpp.

Referenced by injectResourceDir().

◆ setLangDefaults()

void CompilerInvocation::setLangDefaults ( LangOptions Opts,
InputKind  IK,
const llvm::Triple &  T,
PreprocessorOptions PPOpts,
LangStandard::Kind  LangStd = LangStandard::lang_unspecified 

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