class Generic_GCC
Declaration
class Generic_GCC : public ToolChain { /* full declaration omitted */ };
Description
Generic_GCC - A tool chain using the 'gcc' command to perform all subcommands; this relies on gcc translating the majority of command line options.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:144
Inherits from: ToolChain
Member Variables
- protected clang::driver::toolchains::Generic_GCC:: GCCInstallationDetector GCCInstallation
- protected clang::driver::CudaInstallationDetector CudaInstallation
- protected clang::driver::RocmInstallationDetector RocmInstallation
- private std::unique_ptr<tools::gcc::Preprocessor> Preprocess
- @ }
- private std::unique_ptr<tools::gcc::Compiler> Compile
Inherited from ToolChain:
Method Overview
- protected void AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- protected void AddMultiarchPaths(const clang::driver::Driver & D, const std::string & SysRoot, const std::string & OSLibDir, clang::driver::ToolChain::path_list & Paths)
- protected void AddMultilibIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- protected void AddMultilibPaths(const clang::driver::Driver & D, const std::string & SysRoot, const std::string & OSLibDir, const std::string & MultiarchTriple, clang::driver::ToolChain::path_list & Paths)
- public Generic_GCC(const clang::driver::Driver & D, const llvm::Triple & Triple, const llvm::opt::ArgList & Args)
- public bool IsIntegratedAssemblerDefault() const
- public bool IsUnwindTablesDefault(const llvm::opt::ArgList & Args) const
- protected void PushPPaths(ToolChain::path_list & PPaths)
- public llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList & Args, llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const
- protected bool addGCCLibStdCxxIncludePaths(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, llvm::StringRef DebianMultiarch) const
- protected virtual void addLibCxxIncludePaths(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- protected bool addLibStdCXXIncludePaths(llvm::Twine IncludeDir, llvm::StringRef Triple, llvm::Twine IncludeSuffix, const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, bool DetectDebian = false) const
- protected virtual void addLibStdCxxIncludePaths(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- protected clang::driver::Tool * buildAssembler() const
- protected clang::driver::Tool * buildLinker() const
- protected clang::driver::Tool * getTool(Action::ActionClass AC) const
- public bool isPICDefault() const
- public bool isPICDefaultForced() const
- public bool isPIEDefault(const llvm::opt::ArgList & Args) const
- protected bool isTarget32Bit() const
- protected bool isTarget64Bit() const
- public void printVerboseInfo(llvm::raw_ostream & OS) const
- public ~Generic_GCC()
Inherited from ToolChain:
- public AddCCKextLibArgs
- public AddCXXStdlibLibArgs
- public AddClangCXXStdlibIncludeArgs
- public AddClangCXXStdlibIsystemArgs
- public AddClangSystemIncludeArgs
- public AddCudaIncludeArgs
- public AddFilePathLibArgs
- public AddHIPIncludeArgs
- public AddHIPRuntimeLibArgs
- public AddIAMCUIncludeArgs
- public CheckObjCARC
- public ComputeEffectiveClangTriple
- public ComputeLLVMTriple
- public GetCXXStdlibType
- public GetDefaultCXXStdlibType
- public GetDefaultDwarfVersion
- public GetDefaultRuntimeLibType
- public GetDefaultStackProtectorLevel
- public GetDefaultStandaloneDebug
- public GetDefaultTrivialAutoVarInit
- public GetDefaultUnwindLibType
- public GetExceptionModel
- public GetFilePath
- public GetGlobalDebugPathRemapping
- public GetLinkerPath
- public GetProgramPath
- public GetRuntimeLibType
- public GetStaticLibToolPath
- public GetUnwindLibType
- public HasNativeLLVMSupport
- public IsAArch64OutlineAtomicsDefault
- public IsBlocksDefault
- public IsEncodeExtendedBlockSignatureDefault
- public IsIntegratedAssemblerDefault
- public IsIntegratedBackendDefault
- public IsIntegratedBackendSupported
- public IsMathErrnoDefault
- public IsNonIntegratedBackendSupported
- public IsObjCNonFragileABIDefault
- public IsUnwindTablesDefault
- public LookupTypeForExtension
- public SelectTool
- public ShouldLinkCXXStdlib
- public SupportsEmbeddedBitcode
- public SupportsProfiling
- public TranslateArgs
- public TranslateOpenMPTargetArgs
- public TranslateXarchArgs
- public TranslateXarchArgs
- public UseDwarfDebugFlags
- public UseObjCMixedDispatch
- public addClangTargetOptions
- public addClangWarningOptions
- protected addExternCSystemInclude
- protected addExternCSystemIncludeIfExists
- public addFastMathRuntimeIfAvailable
- public addProfileRTLibs
- protected addSystemInclude
- protected addSystemIncludes
- public adjustDebugInfoKind
- protected buildAssembler
- protected buildCompilerRTBasename
- protected buildLinker
- protected buildStaticLibTool
- public canSplitThinLTOUnit
- public computeMSVCVersion
- public computeSysRoot
- protected concat
- public defaultToIEEELongDouble
- public detectLibcxxVersion
- public getArch
- public getArchName
- public getArchSpecificLibPath
- public getAuxTriple
- public getCompilerRT
- public getCompilerRTArgString
- public getCompilerRTBasename
- public getCompilerRTPath
- public getDefaultDebugFormat
- public getDefaultDebuggerTuning
- public getDefaultDenormalModeForType
- public getDefaultLinker
- public getDefaultObjCRuntime
- public getDefaultSanitizers
- public getDefaultUniversalArchName
- public getDriver
- public getEffectiveTriple
- public getFilePaths
- public getFilePaths
- public getHIPDeviceLibs
- public getInputFilename
- public getLibraryPaths
- public getLibraryPaths
- public getMaxDwarfVersion
- public getMultiarchTriple
- public getMultilib
- public getMultilibs
- public getOS
- public getOSLibName
- public getOpenMPTriple
- public getPlatform
- public getProgramPaths
- public getProgramPaths
- public getRTTIArg
- public getRTTIMode
- public getRuntimePaths
- public getSanitizerArgs
- public getStdlibPaths
- public getSupportedSanitizers
- public getTargetAndModeFromProgramName
- public getTargetVariantTriple
- public getThreadModel
- protected getTool
- public getTriple
- public getTripleString
- public getVFS
- public getXRayArgs
- public hasBlocksRuntime
- public isCrossCompiling
- public isFastMathRuntimeAvailable
- public isPICDefault
- public isPICDefaultForced
- public isPIEDefault
- public isThreadModelSupported
- public needsGCovInstrumentation
- public needsProfileRT
- public parseInlineAsmUsingAsmParser
- public printVerboseInfo
- protected setTripleEnvironment
- public supportsDebugInfoOption
- public useIntegratedAs
- public useIntegratedBackend
- public useRelaxRelocations
Methods
¶void AddClangCXXStdlibIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
void AddClangCXXStdlibIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:334
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶void AddMultiarchPaths(
const clang::driver::Driver& D,
const std::string& SysRoot,
const std::string& OSLibDir,
clang::driver::ToolChain::path_list& Paths)
void AddMultiarchPaths(
const clang::driver::Driver& D,
const std::string& SysRoot,
const std::string& OSLibDir,
clang::driver::ToolChain::path_list& Paths)
Declared at: clang/lib/Driver/ToolChains/Gnu.h:327
Parameters
- const clang::driver::Driver& D
- const std::string& SysRoot
- const std::string& OSLibDir
- clang::driver::ToolChain::path_list& Paths
¶void AddMultilibIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
void AddMultilibIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:329
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶void AddMultilibPaths(
const clang::driver::Driver& D,
const std::string& SysRoot,
const std::string& OSLibDir,
const std::string& MultiarchTriple,
clang::driver::ToolChain::path_list& Paths)
void AddMultilibPaths(
const clang::driver::Driver& D,
const std::string& SysRoot,
const std::string& OSLibDir,
const std::string& MultiarchTriple,
clang::driver::ToolChain::path_list& Paths)
Declared at: clang/lib/Driver/ToolChains/Gnu.h:323
Parameters
- const clang::driver::Driver& D
- const std::string& SysRoot
- const std::string& OSLibDir
- const std::string& MultiarchTriple
- clang::driver::ToolChain::path_list& Paths
¶Generic_GCC(const clang::driver::Driver& D,
const llvm::Triple& Triple,
const llvm::opt::ArgList& Args)
Generic_GCC(const clang::driver::Driver& D,
const llvm::Triple& Triple,
const llvm::opt::ArgList& Args)
Declared at: clang/lib/Driver/ToolChains/Gnu.h:293
Parameters
- const clang::driver::Driver& D
- const llvm::Triple& Triple
- const llvm::opt::ArgList& Args
¶bool IsIntegratedAssemblerDefault() const
bool IsIntegratedAssemblerDefault() const
Description
IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:303
¶bool IsUnwindTablesDefault(
const llvm::opt::ArgList& Args) const
bool IsUnwindTablesDefault(
const llvm::opt::ArgList& Args) const
Description
IsUnwindTablesDefault - Does this tool chain use -funwind-tables by default.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:299
Parameters
- const llvm::opt::ArgList& Args
¶void PushPPaths(ToolChain::path_list& PPaths)
void PushPPaths(ToolChain::path_list& PPaths)
Declared at: clang/lib/Driver/ToolChains/Gnu.h:322
Parameters
- ToolChain::path_list& PPaths
¶llvm::opt::DerivedArgList* TranslateArgs(
const llvm::opt::DerivedArgList& Args,
llvm::StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind) const
llvm::opt::DerivedArgList* TranslateArgs(
const llvm::opt::DerivedArgList& Args,
llvm::StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind) const
Description
TranslateArgs - Create a new derived argument list for any argument translations this ToolChain may wish to perform, or 0 if no tool chain specific translations are needed. If \p DeviceOffloadKind is specified the translation specific for that offload kind is performed.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:305
Parameters
- const llvm::opt::DerivedArgList& Args
- llvm::StringRef BoundArch
- - The bound architecture name, or 0.
- Action::OffloadKind DeviceOffloadKind
- - The device offload kind used for the translation.
¶bool addGCCLibStdCxxIncludePaths(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
llvm::StringRef DebianMultiarch) const
bool addGCCLibStdCxxIncludePaths(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
llvm::StringRef DebianMultiarch) const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:345
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- llvm::StringRef DebianMultiarch
¶virtual void addLibCxxIncludePaths(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void addLibCxxIncludePaths(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:339
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶bool addLibStdCXXIncludePaths(
llvm::Twine IncludeDir,
llvm::StringRef Triple,
llvm::Twine IncludeSuffix,
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
bool DetectDebian = false) const
bool addLibStdCXXIncludePaths(
llvm::Twine IncludeDir,
llvm::StringRef Triple,
llvm::Twine IncludeSuffix,
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
bool DetectDebian = false) const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:349
Parameters
- llvm::Twine IncludeDir
- llvm::StringRef Triple
- llvm::Twine IncludeSuffix
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- bool DetectDebian = false
¶virtual void addLibStdCxxIncludePaths(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void addLibStdCxxIncludePaths(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:342
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶clang::driver::Tool* buildAssembler() const
clang::driver::Tool* buildAssembler() const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:310
¶clang::driver::Tool* buildLinker() const
clang::driver::Tool* buildLinker() const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:311
¶clang::driver::Tool* getTool(
Action::ActionClass AC) const
clang::driver::Tool* getTool(
Action::ActionClass AC) const
Declared at: clang/lib/Driver/ToolChains/Gnu.h:309
Parameters
- Action::ActionClass AC
¶bool isPICDefault() const
bool isPICDefault() const
Description
Test whether this toolchain defaults to PIC.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:300
¶bool isPICDefaultForced() const
bool isPICDefaultForced() const
Description
Tests whether this toolchain forces its default for PIC, PIE or non-PIC. If this returns true, any PIC related flags should be ignored and instead the results of \c isPICDefault() and \c isPIEDefault(const llvm::opt::ArgList &Args ) are used exclusively.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:302
¶bool isPIEDefault(
const llvm::opt::ArgList& Args) const
bool isPIEDefault(
const llvm::opt::ArgList& Args) const
Description
Test whether this toolchain defaults to PIE.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:301
Parameters
- const llvm::opt::ArgList& Args
¶bool isTarget32Bit() const
bool isTarget32Bit() const
Description
Check whether the target triple's architecture is 32-bits.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:320
¶bool isTarget64Bit() const
bool isTarget64Bit() const
Description
Check whether the target triple's architecture is 64-bits.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:317
¶void printVerboseInfo(llvm::raw_ostream& OS) const
void printVerboseInfo(llvm::raw_ostream& OS) const
Description
Dispatch to the specific toolchain for verbose printing. This is used when handling the verbose option to print detailed, toolchain-specific information useful for understanding the behavior of the driver on a specific platform.
Declared at: clang/lib/Driver/ToolChains/Gnu.h:297
Parameters
¶~Generic_GCC()
~Generic_GCC()
Description
@ }
Declared at: clang/lib/Driver/ToolChains/Gnu.h:295