clang 8.0.0

Public Member Functions | Protected Member Functions | List of all members
clang::driver::toolchains::FreeBSD Class Reference

`#include "/work/www-prereleases/8.0.0/rc2/builddocs/llvm.src/tools/clang/lib/Driver/ToolChains/FreeBSD.h"`

Inheritance diagram for clang::driver::toolchains::FreeBSD:
[legend]
Collaboration diagram for clang::driver::toolchains::FreeBSD:
[legend]

## Public Member Functions
| FreeBSD (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
| FreeBSD - FreeBSD tool chain which can call as(1) and ld(1) directly. More...
bool | HasNativeLLVMSupport () const override
| HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support. More...
bool | IsMathErrnoDefault () const override
| IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. More...
bool | IsObjCNonFragileABIDefault () const override
| IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default. More...
CXXStdlibType | GetDefaultCXXStdlibType () const override
void | addLibStdCxxIncludePaths (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override
void | AddCXXStdlibLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override
| AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type. More...
llvm::ExceptionHandling | GetExceptionModel (const llvm::opt::ArgList &Args) const override
| GetExceptionModel - Return the tool chain exception model. More...
bool | isPIEDefault () const override
| Test whether this toolchain defaults to PIE. More...
SanitizerMask | getSupportedSanitizers () const override
| Return sanitizers which are available in this toolchain. More...
unsigned | GetDefaultDwarfVersion () const override
bool | GetDefaultStandaloneDebug () const override
Public Member Functions inherited from clang::driver::toolchains::Generic_ELF
| Generic_ELF (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
void | addClangTargetOptions (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const override
| Add options that need to be passed to cc1 for this target. More...
Public Member Functions inherited from clang::driver::toolchains::Generic_GCC
| Generic_GCC (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args)
| ~Generic_GCC () override
void | printVerboseInfo (raw_ostream &OS) const override
| Dispatch to the specific toolchain for verbose printing. More...
bool | IsUnwindTablesDefault (const llvm::opt::ArgList &Args) const override
| IsUnwindTablesDefault - Does this tool chain use -funwind-tables by default. More...
bool | isPICDefault () const override
| Test whether this toolchain defaults to PIC. More...
bool | isPIEDefault () const override
| Test whether this toolchain defaults to PIE. More...
bool | isPICDefaultForced () const override
| Tests whether this toolchain forces its default for PIC, PIE or non-PIC. More...
bool | IsIntegratedAssemblerDefault () const override
| IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default. More...
llvm::opt::DerivedArgList * | TranslateArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override
| 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. More...
Public Member Functions inherited from clang::driver::ToolChain
virtual | ~ToolChain ()
const Driver & | getDriver () const
llvm::vfs::FileSystem & | getVFS () const
const llvm::Triple & | getTriple () const
virtual const llvm::Triple * | getAuxTriple () const
| Get the toolchain's aux triple, if it has one. More...
virtual std::string | getInputFilename (const InputInfo &Input) const
| Some toolchains need to modify the file name, for example to replace the extension for object files with .cubin for OpenMP offloading to Nvidia GPUs. More...
llvm::Triple::ArchType | getArch () const
StringRef | getArchName () const
StringRef | getPlatform () const
StringRef | getOS () const
StringRef | getDefaultUniversalArchName () const
| Provide the default architecture name (as expected by -arch) for this toolchain. More...
std::string | getTripleString () const
const llvm::Triple & | getEffectiveTriple () const
| Get the toolchain's effective clang triple. More...
path_list & | getLibraryPaths ()
const path_list & | getLibraryPaths () const
path_list & | getFilePaths ()
const path_list & | getFilePaths () const
path_list & | getProgramPaths ()
const path_list & | getProgramPaths () const
const MultilibSet & | getMultilibs () const
const Multilib & | getMultilib () const
const SanitizerArgs & | getSanitizerArgs () const
const XRayArgs & | getXRayArgs () const
const llvm::opt::Arg * | getRTTIArg () const
RTTIMode | getRTTIMode () const
virtual llvm::opt::DerivedArgList * | TranslateOpenMPTargetArgs (const llvm::opt::DerivedArgList &Args, bool SameTripleAsHost, SmallVectorImpl< llvm::opt::Arg *> &AllocatedArgs) const
| TranslateOpenMPTargetArgs - Create a new derived argument list for that contains the OpenMP target specific flags passed via -Xopenmp-target -opt=val OR -Xopenmp-target=<triple> -opt=val. More...
virtual Tool * | SelectTool (const JobAction &JA) const
| Choose a tool to use to handle the action `JA`. More...
std::string | GetFilePath (const char *Name) const
std::string | GetProgramPath (const char *Name) const
std::string | GetLinkerPath () const
| Returns the linker path, respecting the -fuse-ld= argument to determine the linker suffix or name. More...
virtual bool | isCrossCompiling () const
| Returns true if the toolchain is targeting a non-native architecture. More...
virtual types::ID | LookupTypeForExtension (StringRef Ext) const
| LookupTypeForExtension - Return the default language type to use for the given extension. More...
virtual bool | IsBlocksDefault () const
| IsBlocksDefault - Does this tool chain enable -fblocks by default. More...
virtual bool | useIntegratedAs () const
| Check if the toolchain should use the integrated assembler. More...
virtual bool | IsEncodeExtendedBlockSignatureDefault () const
| IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default. More...
virtual bool | UseObjCMixedDispatch () const
| UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used? More...
virtual bool | useRelaxRelocations () const
| Check whether to enable x86 relax relocations by default. More...
virtual unsigned | GetDefaultStackProtectorLevel (bool KernelOrKext) const
| GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain (0=off, 1=on, 2=strong, 3=all). More...
virtual LangOptions::TrivialAutoVarInitKind | GetDefaultTrivialAutoVarInit () const
| Get the default trivial automatic variable initialization. More...
virtual const char * | getDefaultLinker () const
| GetDefaultLinker - Get the default linker to use. More...
virtual RuntimeLibType | GetDefaultRuntimeLibType () const
| GetDefaultRuntimeLibType - Get the default runtime library variant to use. More...
virtual std::string | getCompilerRTPath () const
virtual std::string | getCompilerRT (const llvm::opt::ArgList &Args, StringRef Component, bool Shared=false) const
const char * | getCompilerRTArgString (const llvm::opt::ArgList &Args, StringRef Component, bool Shared=false) const
std::string | getArchSpecificLibPath () const
StringRef | getOSLibName () const
virtual bool | SupportsProfiling () const
| SupportsProfiling - Does this tool chain support -pg. More...
virtual void | CheckObjCARC () const
| Complain if this tool chain doesn't support Objective-C ARC. More...
virtual codegenoptions::DebugInfoFormat | getDefaultDebugFormat () const
| Get the default debug info format. Typically, this is DWARF. More...
virtual bool | UseDwarfDebugFlags () const
| UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information. More...
virtual llvm::DebuggerKind | getDefaultDebuggerTuning () const
virtual bool | supportsDebugInfoOption (const llvm::opt::Arg *) const
| Does this toolchain supports given debug info option or not. More...
virtual void | adjustDebugInfoKind (codegenoptions::DebugInfoKind &DebugInfoKind, const llvm::opt::ArgList &Args) const
| Adjust debug information kind considering all passed options. More...
virtual bool | SupportsEmbeddedBitcode () const
| SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode. More...
virtual std::string | getThreadModel () const
| getThreadModel() - Which thread model does this target use? More...
virtual bool | isThreadModelSupported (const StringRef Model) const
| isThreadModelSupported() - Does this target support a thread model? More...
virtual std::string | ComputeLLVMTriple (const llvm::opt::ArgList &Args, types::ID InputType=types::TY_INVALID) const
| ComputeLLVMTriple - Return the LLVM target triple to use, after taking command line arguments into account. More...
virtual std::string | ComputeEffectiveClangTriple (const llvm::opt::ArgList &Args, types::ID InputType=types::TY_INVALID) const
| ComputeEffectiveClangTriple - Return the Clang triple to use for this target, which may take into account the command line arguments. More...
virtual ObjCRuntime | getDefaultObjCRuntime (bool isNonFragile) const
| getDefaultObjCRuntime - Return the default Objective-C runtime for this platform. More...
virtual bool | hasBlocksRuntime () const
| hasBlocksRuntime - Given that the user is compiling with -fblocks, does this tool chain guarantee the existence of a blocks runtime? More...
virtual void | AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const
| Add the clang cc1 arguments for system include paths. More...
virtual void | addClangWarningOptions (llvm::opt::ArgStringList &CC1Args) const
| Add warning options that need to be passed to cc1 for this target. More...
virtual RuntimeLibType | GetRuntimeLibType (const llvm::opt::ArgList &Args) const
virtual CXXStdlibType | GetCXXStdlibType (const llvm::opt::ArgList &Args) const
bool | ShouldLinkCXXStdlib (const llvm::opt::ArgList &Args) const
| Returns if the C++ standard library should be linked in. More...
void | AddFilePathLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const
| AddFilePathLibArgs - Add each thing in getFilePaths() as a "-L" option. More...
virtual void | AddCCKextLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const
| AddCCKextLibArgs - Add the system specific linker arguments to use for kernel extensions (Darwin-specific). More...
virtual bool | AddFastMathRuntimeIfAvailable (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const
| AddFastMathRuntimeIfAvailable - If a runtime library exists that sets global flags for unsafe floating point math, add it and return true. More...
virtual void | addProfileRTLibs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const
| addProfileRTLibs - When -fprofile-instr-profile is specified, try to pass a suitable profile runtime library to the linker. More...
virtual void | AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const
| Add arguments to use system-specific CUDA includes. More...
virtual void | AddIAMCUIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const
| Add arguments to use MCU GCC toolchain includes. More...
virtual VersionTuple | computeMSVCVersion (const Driver *D, const llvm::opt::ArgList &Args) const
| On Windows, returns the MSVC compatibility version. More...
virtual SanitizerMask | getDefaultSanitizers () const
| Return sanitizers which are enabled by default. More...

## Protected Member Functions
Tool * | buildAssembler () const override
Tool * | buildLinker () const override
Protected Member Functions inherited from clang::driver::toolchains::Generic_GCC
Tool * | getTool (Action::ActionClass AC) const override
Tool * | buildAssembler () const override
Tool * | buildLinker () const override
bool | isTarget64Bit () const
| Check whether the target triple's architecture is 64-bits. More...
bool | isTarget32Bit () const
| Check whether the target triple's architecture is 32-bits. More...
void | AddClangCXXStdlibIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override
| AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type. More...
virtual void | addLibCxxIncludePaths (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const
bool | addLibStdCXXIncludePaths (Twine Base, Twine Suffix, StringRef GCCTriple, StringRef GCCMultiarchTriple, StringRef TargetMultiarchTriple, Twine IncludeSuffix, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const
| Helper to add the variant paths of a libstdc++ installation. More...
Protected Member Functions inherited from clang::driver::ToolChain
| ToolChain (const Driver &D, const llvm::Triple &T, const llvm::opt::ArgList &Args)
void | setTripleEnvironment (llvm::Triple::EnvironmentType Env)

## Additional Inherited Members
Public Types inherited from clang::driver::ToolChain
enum | CXXStdlibType { CST_Libcxx, CST_Libstdcxx }
enum | RuntimeLibType { RLT_CompilerRT, RLT_Libgcc }
enum | RTTIMode { RM_Enabled, RM_Disabled }
using | path_list = SmallVector< std::string, 16 >
Static Public Member Functions inherited from clang::driver::ToolChain
static ParsedClangName | getTargetAndModeFromProgramName (StringRef ProgName)
| Return any implicit target and/or mode flag for an invocation of the compiler driver as `ProgName`. More...
static bool | needsProfileRT (const llvm::opt::ArgList &Args)
| needsProfileRT - returns true if instrumentation profile is on. More...
static bool | needsGCovInstrumentation (const llvm::opt::ArgList &Args)
| Returns true if gcov instrumentation (-fprofile-arcs or –coverage) is on. More...
Static Protected Member Functions inherited from clang::driver::ToolChain
static void | addSystemInclude (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, const Twine &Path)
| Utility function to add a system include directory to CC1 arguments. More...
static void | addExternCSystemInclude (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, const Twine &Path)
| Utility function to add a system include directory with extern "C" semantics to CC1 arguments. More...
static void | addExternCSystemIncludeIfExists (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, const Twine &Path)
static void | addSystemIncludes (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, ArrayRef< StringRef > Paths)
| Utility function to add a list of system include directories to CC1. More...
Protected Attributes inherited from clang::driver::toolchains::Generic_GCC
GCCInstallationDetector | GCCInstallation
CudaInstallationDetector | CudaInstallation
Protected Attributes inherited from clang::driver::ToolChain
MultilibSet | Multilibs
Multilib | SelectedMultilib

## Detailed Description

Definition at line 53 of file FreeBSD.h.

## Constructor & Destructor Documentation

## ◆ FreeBSD()

FreeBSD::FreeBSD | ( | const Driver & | D,
|  | const llvm::Triple & | Triple,
|  | const llvm::opt::ArgList & | Args
| ) |  |

FreeBSD - FreeBSD tool chain which can call as(1) and ld(1) directly.

Definition at line 340 of file FreeBSD.cpp.

References clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getFilePaths(), and clang::driver::Driver::getVFS().

## Member Function Documentation

## ◆ AddCXXStdlibLibArgs()

void FreeBSD::AddCXXStdlibLibArgs | ( | const llvm::opt::ArgList & | Args,
|  | llvm::opt::ArgStringList & | CmdArgs
| ) |  | const
| override virtual

AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type.

Reimplemented from clang::driver::ToolChain.

Definition at line 367 of file FreeBSD.cpp.

References clang::driver::ToolChain::CST_Libcxx, clang::driver::ToolChain::CST_Libstdcxx, and clang::driver::ToolChain::GetCXXStdlibType().

Referenced by ConstructGoldLinkJob(), and clang::driver::tools::freebsd::Linker::ConstructJob().

## ◆ addLibStdCxxIncludePaths()

void FreeBSD::addLibStdCxxIncludePaths | ( | const llvm::opt::ArgList & | DriverArgs,
|  | llvm::opt::ArgStringList & | CC1Args
| ) |  | const
| override virtual

Reimplemented from clang::driver::toolchains::Generic_GCC.

Definition at line 360 of file FreeBSD.cpp.

References clang::driver::toolchains::Generic_GCC::addLibStdCXXIncludePaths(), and clang::driver::ToolChain::getDriver().

## ◆ buildAssembler()

Tool * FreeBSD::buildAssembler | ( |  | ) | const
| override protected virtual

Reimplemented from clang::driver::ToolChain.

Definition at line 383 of file FreeBSD.cpp.

## ◆ buildLinker()

Tool * FreeBSD::buildLinker | ( |  | ) | const
| override protected virtual

Reimplemented from clang::driver::ToolChain.

Definition at line 387 of file FreeBSD.cpp.

## ◆ GetDefaultCXXStdlibType()

ToolChain::CXXStdlibType FreeBSD::GetDefaultCXXStdlibType | ( |  | ) | const
| override virtual

Reimplemented from clang::driver::ToolChain.

Definition at line 354 of file FreeBSD.cpp.

References clang::driver::ToolChain::CST_Libcxx, clang::driver::ToolChain::CST_Libstdcxx, and clang::driver::ToolChain::getTriple().

## ◆ GetDefaultDwarfVersion()

unsigned clang::driver::toolchains::FreeBSD::GetDefaultDwarfVersion | ( |  | ) | const
| inline override virtual

Reimplemented from clang::driver::ToolChain.

Definition at line 73 of file FreeBSD.h.

## ◆ GetDefaultStandaloneDebug()

bool clang::driver::toolchains::FreeBSD::GetDefaultStandaloneDebug | ( |  | ) | const
| inline override virtual

Reimplemented from clang::driver::ToolChain.

Definition at line 76 of file FreeBSD.h.

## ◆ GetExceptionModel()

llvm::ExceptionHandling FreeBSD::GetExceptionModel | ( | const llvm::opt::ArgList & | Args | ) | const
| override virtual

GetExceptionModel - Return the tool chain exception model.

Reimplemented from clang::driver::ToolChain.

Definition at line 389 of file FreeBSD.cpp.

References clang::driver::ToolChain::getArch(), clang::driver::ToolChain::getTriple(), and clang::XRayInstrKind::None.

## ◆ getSupportedSanitizers()

SanitizerMask FreeBSD::getSupportedSanitizers | ( |  | ) | const
| override virtual

Return sanitizers which are available in this toolchain.

Reimplemented from clang::driver::ToolChain.

Definition at line 408 of file FreeBSD.cpp.

References clang::driver::ToolChain::getSupportedSanitizers(), and clang::driver::ToolChain::getTriple().

## ◆ HasNativeLLVMSupport()

bool FreeBSD::HasNativeLLVMSupport | ( |  | ) | const
| override virtual

HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support.

Reimplemented from clang::driver::ToolChain.

Definition at line 404 of file FreeBSD.cpp.

## ◆ IsMathErrnoDefault()

bool clang::driver::toolchains::FreeBSD::IsMathErrnoDefault | ( |  | ) | const
| inline override virtual

IsMathErrnoDefault - Does this tool chain use -fmath-errno by default.

Reimplemented from clang::driver::ToolChain.

Definition at line 59 of file FreeBSD.h.

## ◆ IsObjCNonFragileABIDefault()

bool clang::driver::toolchains::FreeBSD::IsObjCNonFragileABIDefault | ( |  | ) | const
| inline override virtual

IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default.

Reimplemented from clang::driver::ToolChain.

Definition at line 60 of file FreeBSD.h.

## ◆ isPIEDefault()

bool FreeBSD::isPIEDefault | ( |  | ) | const
| override virtual

Test whether this toolchain defaults to PIE.

Implements clang::driver::ToolChain.

Definition at line 406 of file FreeBSD.cpp.

References clang::driver::ToolChain::getSanitizerArgs(), and clang::driver::SanitizerArgs::requiresPIE().

Referenced by clang::driver::tools::freebsd::Linker::ConstructJob().

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

- lib/Driver/ToolChains/FreeBSD.h
- lib/Driver/ToolChains/FreeBSD.cpp