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:

protected Multilibs
protected SelectedMultilib

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:

Methods

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)

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

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)

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)

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

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

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)

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

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

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

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

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

Declared at: clang/lib/Driver/ToolChains/Gnu.h:342

Parameters

const llvm::opt::ArgList& DriverArgs
llvm::opt::ArgStringList& CC1Args

clang::driver::Tool* buildAssembler() const

Declared at: clang/lib/Driver/ToolChains/Gnu.h:310

clang::driver::Tool* buildLinker() const

Declared at: clang/lib/Driver/ToolChains/Gnu.h:311

clang::driver::Tool* getTool(
    Action::ActionClass AC) const

Declared at: clang/lib/Driver/ToolChains/Gnu.h:309

Parameters

Action::ActionClass AC

bool isPICDefault() const

Description

Test whether this toolchain defaults to PIC.

Declared at: clang/lib/Driver/ToolChains/Gnu.h:300

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

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

Description

Check whether the target triple's architecture is 32-bits.

Declared at: clang/lib/Driver/ToolChains/Gnu.h:320

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

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

llvm::raw_ostream& OS

~Generic_GCC()

Description

@ }

Declared at: clang/lib/Driver/ToolChains/Gnu.h:295