clang 20.0.0git
|
DarwinClang - The Darwin toolchain used by Clang. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Driver/ToolChains/Darwin.h"
Public Member Functions | |
DarwinClang (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) | |
Public Member Functions inherited from clang::driver::toolchains::Darwin | |
Darwin (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) | |
Darwin - Darwin tool chain for i386 and x86_64. | |
~Darwin () override | |
std::string | ComputeEffectiveClangTriple (const llvm::opt::ArgList &Args, types::ID InputType) const override |
ComputeEffectiveClangTriple - Return the Clang triple to use for this target, which may take into account the command line arguments. | |
void | addMinVersionArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
void | addPlatformVersionArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
void | addStartObjectFileArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
bool | isKernelStatic () const override |
On some iOS platforms, kernel and kernel modules were built statically. | |
void | addProfileRTLibs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
Add any profiling runtime libraries that are needed. | |
std::string | getCompilerRT (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const override |
bool | isCrossCompiling () const override |
Returns true if the toolchain is targeting a non-native architecture. | |
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. | |
CXXStdlibType | GetDefaultCXXStdlibType () const override |
ObjCRuntime | getDefaultObjCRuntime (bool isNonFragile) const override |
Darwin provides an ARC runtime starting in MacOS X 10.7 and iOS 5.0. | |
bool | hasBlocksRuntime () const override |
Darwin provides a blocks runtime starting in MacOS X 10.6 and iOS 3.2. | |
void | AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override |
Add arguments to use system-specific CUDA includes. | |
void | AddHIPIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override |
Add arguments to use system-specific HIP includes. | |
bool | UseObjCMixedDispatch () const override |
UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used? | |
LangOptions::StackProtectorMode | GetDefaultStackProtectorLevel (bool KernelOrKext) const override |
GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain. | |
void | CheckObjCARC () const override |
Complain if this tool chain doesn't support Objective-C ARC. | |
llvm::ExceptionHandling | GetExceptionModel (const llvm::opt::ArgList &Args) const override |
GetExceptionModel - Return the tool chain exception model. | |
bool | SupportsEmbeddedBitcode () const override |
SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode. | |
SanitizerMask | getSupportedSanitizers () const override |
Return sanitizers which are available in this toolchain. | |
void | printVerboseInfo (raw_ostream &OS) const override |
Dispatch to the specific toolchain for verbose printing. | |
bool | isTargetIPhoneOS () const |
bool | isTargetIOSSimulator () const |
bool | isTargetIOSBased () const |
bool | isTargetXROSDevice () const |
bool | isTargetXROSSimulator () const |
bool | isTargetXROS () const |
bool | isTargetTvOS () const |
bool | isTargetTvOSSimulator () const |
bool | isTargetTvOSBased () const |
bool | isTargetWatchOS () const |
bool | isTargetWatchOSSimulator () const |
bool | isTargetWatchOSBased () const |
bool | isTargetDriverKit () const |
bool | isTargetMacCatalyst () const |
bool | isTargetMacOS () const |
bool | isTargetMacOSBased () const |
bool | isTargetAppleSiliconMac () const |
bool | isTargetInitialized () const |
VersionTuple | getTripleTargetVersion () const |
The version of the OS that's used by the OS specified in the target triple. | |
bool | isIPhoneOSVersionLT (unsigned V0, unsigned V1=0, unsigned V2=0) const |
bool | isMacosxVersionLT (unsigned V0, unsigned V1=0, unsigned V2=0) const |
Returns true if the minimum supported macOS version for the slice that's being built is less than the specified version. | |
Public Member Functions inherited from clang::driver::toolchains::MachO | |
MachO (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) | |
~MachO () override | |
types::ID | LookupTypeForExtension (StringRef Ext) const override |
LookupTypeForExtension - Return the default language type to use for the given extension. | |
bool | HasNativeLLVMSupport () const override |
HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support. | |
bool | IsBlocksDefault () const override |
IsBlocksDefault - Does this tool chain enable -fblocks by default. | |
bool | IsMathErrnoDefault () const override |
IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. | |
bool | IsEncodeExtendedBlockSignatureDefault () const override |
IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default. | |
bool | IsObjCNonFragileABIDefault () const override |
IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default. | |
UnwindTableLevel | getDefaultUnwindTableLevel (const llvm::opt::ArgList &Args) const override |
How detailed should the unwind tables be by default. | |
RuntimeLibType | GetDefaultRuntimeLibType () const override |
GetDefaultRuntimeLibType - Get the default runtime library variant to use. | |
bool | isPICDefault () const override |
Test whether this toolchain defaults to PIC. | |
bool | isPIEDefault (const llvm::opt::ArgList &Args) const override |
Test whether this toolchain defaults to PIE. | |
bool | isPICDefaultForced () const override |
Tests whether this toolchain forces its default for PIC, PIE or non-PIC. | |
bool | SupportsProfiling () const override |
SupportsProfiling - Does this tool chain support -pg. | |
bool | UseDwarfDebugFlags () const override |
UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information. | |
std::string | GetGlobalDebugPathRemapping () const override |
Add an additional -fdebug-prefix-map entry. | |
bool | canSplitThinLTOUnit () const override |
Returns true when it's possible to split LTO unit to use whole program devirtualization and CFI santiizers. | |
StringRef | getMachOArchName (const llvm::opt::ArgList &Args) const |
Get the "MachO" arch name for a particular compiler invocation. | |
VersionTuple | getLinkerVersion (const llvm::opt::ArgList &Args) const |
Get the version of the linker known to be available for a particular compiler invocation (via the -mlinker-version= arg). | |
bool | isTargetIOSBased () const |
Is the target either iOS or an iOS simulator? | |
void | AddLinkRuntimeLib (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, StringRef Component, RuntimeLinkOptions Opts=RuntimeLinkOptions(), bool IsShared=false) const |
Add a runtime library to the list of items to link. | |
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. | |
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. | |
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. | |
std::string | getTripleString () const |
const llvm::Triple & | getEffectiveTriple () const |
Get the toolchain's effective clang triple. | |
bool | hasEffectiveTriple () const |
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 llvm::SmallVector< Multilib > & | getSelectedMultilibs () const |
Multilib::flags_list | getMultilibFlags (const llvm::opt::ArgList &) const |
Get flags suitable for multilib selection, based on the provided clang command line arguments. | |
SanitizerArgs | getSanitizerArgs (const llvm::opt::ArgList &JobArgs) const |
const XRayArgs & | getXRayArgs () const |
const llvm::opt::Arg * | getRTTIArg () const |
RTTIMode | getRTTIMode () const |
ExceptionsMode | getExceptionsMode () const |
virtual llvm::opt::DerivedArgList * | TranslateArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const |
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. | |
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. | |
virtual void | TranslateXarchArgs (const llvm::opt::DerivedArgList &Args, llvm::opt::Arg *&A, llvm::opt::DerivedArgList *DAL, SmallVectorImpl< llvm::opt::Arg * > *AllocatedArgs=nullptr) const |
Append the argument following A to DAL assuming A is an Xarch argument. | |
virtual llvm::opt::DerivedArgList * | TranslateXarchArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind, SmallVectorImpl< llvm::opt::Arg * > *AllocatedArgs) const |
Translate -Xarch_ arguments. | |
virtual Tool * | SelectTool (const JobAction &JA) const |
Choose a tool to use to handle the action JA . | |
std::string | GetFilePath (const char *Name) const |
std::string | GetProgramPath (const char *Name) const |
std::string | GetLinkerPath (bool *LinkerIsLLD=nullptr) const |
Returns the linker path, respecting the -fuse-ld= argument to determine the linker suffix or name. | |
std::string | GetStaticLibToolPath () const |
Returns the linker path for emitting a static library. | |
virtual void | printVerboseInfo (raw_ostream &OS) const |
Dispatch to the specific toolchain for verbose printing. | |
virtual bool | isCrossCompiling () const |
Returns true if the toolchain is targeting a non-native architecture. | |
virtual bool | HasNativeLLVMSupport () const |
HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support. | |
virtual types::ID | LookupTypeForExtension (StringRef Ext) const |
LookupTypeForExtension - Return the default language type to use for the given extension. | |
virtual bool | IsBlocksDefault () const |
IsBlocksDefault - Does this tool chain enable -fblocks by default. | |
virtual bool | IsIntegratedAssemblerDefault () const |
IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default. | |
virtual bool | IsIntegratedBackendDefault () const |
IsIntegratedBackendDefault - Does this tool chain enable -fintegrated-objemitter by default. | |
virtual bool | IsIntegratedBackendSupported () const |
IsIntegratedBackendSupported - Does this tool chain support -fintegrated-objemitter. | |
virtual bool | IsNonIntegratedBackendSupported () const |
IsNonIntegratedBackendSupported - Does this tool chain support -fno-integrated-objemitter. | |
virtual bool | useIntegratedAs () const |
Check if the toolchain should use the integrated assembler. | |
virtual bool | useIntegratedBackend () const |
Check if the toolchain should use the integrated backend. | |
virtual bool | parseInlineAsmUsingAsmParser () const |
Check if the toolchain should use AsmParser to parse inlineAsm when integrated assembler is not default. | |
virtual bool | IsMathErrnoDefault () const |
IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. | |
virtual bool | IsEncodeExtendedBlockSignatureDefault () const |
IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default. | |
virtual bool | IsObjCNonFragileABIDefault () const |
IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default. | |
virtual bool | UseObjCMixedDispatch () const |
UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used? | |
virtual bool | useRelaxRelocations () const |
Check whether to enable x86 relax relocations by default. | |
bool | defaultToIEEELongDouble () const |
Check whether use IEEE binary128 as long double format by default. | |
virtual LangOptions::StackProtectorMode | GetDefaultStackProtectorLevel (bool KernelOrKext) const |
GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain. | |
virtual LangOptions::TrivialAutoVarInitKind | GetDefaultTrivialAutoVarInit () const |
Get the default trivial automatic variable initialization. | |
virtual const char * | getDefaultLinker () const |
GetDefaultLinker - Get the default linker to use. | |
virtual RuntimeLibType | GetDefaultRuntimeLibType () const |
GetDefaultRuntimeLibType - Get the default runtime library variant to use. | |
virtual CXXStdlibType | GetDefaultCXXStdlibType () const |
virtual UnwindLibType | GetDefaultUnwindLibType () const |
virtual std::string | getCompilerRTPath () const |
virtual std::string | getCompilerRT (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const |
const char * | getCompilerRTArgString (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const |
std::string | getCompilerRTBasename (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const |
std::optional< std::string > | getRuntimePath () const |
std::optional< std::string > | getStdlibPath () const |
std::optional< std::string > | getStdlibIncludePath () const |
virtual path_list | getArchSpecificLibPaths () const |
virtual StringRef | getOSLibName () const |
virtual UnwindTableLevel | getDefaultUnwindTableLevel (const llvm::opt::ArgList &Args) const |
How detailed should the unwind tables be by default. | |
virtual bool | IsAArch64OutlineAtomicsDefault (const llvm::opt::ArgList &Args) const |
Test whether this toolchain supports outline atomics by default. | |
virtual bool | isPICDefault () const =0 |
Test whether this toolchain defaults to PIC. | |
virtual bool | isPIEDefault (const llvm::opt::ArgList &Args) const =0 |
Test whether this toolchain defaults to PIE. | |
virtual bool | isPICDefaultForced () const =0 |
Tests whether this toolchain forces its default for PIC, PIE or non-PIC. | |
virtual bool | SupportsProfiling () const |
SupportsProfiling - Does this tool chain support -pg. | |
virtual void | CheckObjCARC () const |
Complain if this tool chain doesn't support Objective-C ARC. | |
virtual llvm::codegenoptions::DebugInfoFormat | getDefaultDebugFormat () const |
Get the default debug info format. Typically, this is DWARF. | |
virtual bool | UseDwarfDebugFlags () const |
UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information. | |
virtual std::string | GetGlobalDebugPathRemapping () const |
Add an additional -fdebug-prefix-map entry. | |
virtual unsigned | GetDefaultDwarfVersion () const |
virtual unsigned | getMaxDwarfVersion () const |
virtual bool | GetDefaultStandaloneDebug () const |
virtual llvm::DebuggerKind | getDefaultDebuggerTuning () const |
virtual bool | supportsDebugInfoOption (const llvm::opt::Arg *) const |
Does this toolchain supports given debug info option or not. | |
virtual void | adjustDebugInfoKind (llvm::codegenoptions::DebugInfoKind &DebugInfoKind, const llvm::opt::ArgList &Args) const |
Adjust debug information kind considering all passed options. | |
virtual llvm::ExceptionHandling | GetExceptionModel (const llvm::opt::ArgList &Args) const |
GetExceptionModel - Return the tool chain exception model. | |
virtual bool | SupportsEmbeddedBitcode () const |
SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode. | |
virtual std::string | getThreadModel () const |
getThreadModel() - Which thread model does this target use? | |
virtual bool | isThreadModelSupported (const StringRef Model) const |
isThreadModelSupported() - Does this target support a thread model? | |
virtual bool | isBareMetal () const |
isBareMetal - Is this a bare metal target. | |
virtual std::string | getMultiarchTriple (const Driver &D, const llvm::Triple &TargetTriple, StringRef SysRoot) const |
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. | |
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. | |
virtual ObjCRuntime | getDefaultObjCRuntime (bool isNonFragile) const |
getDefaultObjCRuntime - Return the default Objective-C runtime for this platform. | |
virtual bool | hasBlocksRuntime () const |
hasBlocksRuntime - Given that the user is compiling with -fblocks, does this tool chain guarantee the existence of a blocks runtime? | |
virtual std::string | computeSysRoot () const |
Return the sysroot, possibly searching for a default sysroot using target-specific logic. | |
virtual void | AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
Add the clang cc1 arguments for system include paths. | |
virtual void | addClangTargetOptions (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const |
Add options that need to be passed to cc1 for this target. | |
virtual void | addClangCC1ASTargetOptions (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1ASArgs) const |
Add options that need to be passed to cc1as for this target. | |
virtual void | addClangWarningOptions (llvm::opt::ArgStringList &CC1Args) const |
Add warning options that need to be passed to cc1 for this target. | |
virtual RuntimeLibType | GetRuntimeLibType (const llvm::opt::ArgList &Args) const |
virtual CXXStdlibType | GetCXXStdlibType (const llvm::opt::ArgList &Args) const |
virtual UnwindLibType | GetUnwindLibType (const llvm::opt::ArgList &Args) const |
virtual std::string | detectLibcxxVersion (StringRef IncludePath) const |
virtual void | AddClangCXXStdlibIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type. | |
void | AddClangCXXStdlibIsystemArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
AddClangCXXStdlibIsystemArgs - Add the clang -cc1 level arguments to set the specified include paths for the C++ standard library. | |
bool | ShouldLinkCXXStdlib (const llvm::opt::ArgList &Args) const |
Returns if the C++ standard library should be linked in. | |
virtual void | AddCXXStdlibLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type. | |
void | AddFilePathLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
AddFilePathLibArgs - Add each thing in getFilePaths() as a "-L" option. | |
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). | |
virtual bool | isFastMathRuntimeAvailable (const llvm::opt::ArgList &Args, std::string &Path) const |
If a runtime library exists that sets global flags for unsafe floating point math, return true. | |
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. | |
virtual Expected< SmallVector< std::string > > | getSystemGPUArchs (const llvm::opt::ArgList &Args) const |
getSystemGPUArchs - Use a tool to detect the user's availible GPUs. | |
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. | |
virtual void | AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
Add arguments to use system-specific CUDA includes. | |
virtual void | AddHIPIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
Add arguments to use system-specific HIP includes. | |
virtual void | AddIAMCUIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
Add arguments to use MCU GCC toolchain includes. | |
virtual VersionTuple | computeMSVCVersion (const Driver *D, const llvm::opt::ArgList &Args) const |
On Windows, returns the MSVC compatibility version. | |
virtual llvm::SmallVector< BitCodeLibraryInfo, 12 > | getDeviceLibs (const llvm::opt::ArgList &Args) const |
Get paths for device libraries. | |
virtual void | AddHIPRuntimeLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
Add the system specific linker arguments to use for the given HIP runtime library type. | |
virtual SanitizerMask | getSupportedSanitizers () const |
Return sanitizers which are available in this toolchain. | |
virtual SanitizerMask | getDefaultSanitizers () const |
Return sanitizers which are enabled by default. | |
virtual bool | canSplitThinLTOUnit () const |
Returns true when it's possible to split LTO unit to use whole program devirtualization and CFI santiizers. | |
virtual llvm::DenormalMode | getDefaultDenormalModeForType (const llvm::opt::ArgList &DriverArgs, const JobAction &JA, const llvm::fltSemantics *FPType=nullptr) const |
Returns the output denormal handling type in the default floating point environment for the given FPType if given. | |
Apple ToolChain Implementation | |
{ | |
RuntimeLibType | GetRuntimeLibType (const llvm::opt::ArgList &Args) const override |
void | AddLinkRuntimeLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, bool ForceLinkBuiltinRT=false) const override |
Add the linker arguments to link the compiler runtime library. | |
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. | |
void | AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override |
Add the clang cc1 arguments for system include paths. | |
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. | |
void | AddCCKextLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
AddCCKextLibArgs - Add the system specific linker arguments to use for kernel extensions (Darwin-specific). | |
void | addClangWarningOptions (llvm::opt::ArgStringList &CC1Args) const override |
Add warning options that need to be passed to cc1 for this target. | |
void | AddLinkARCArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
Add the linker arguments to link the ARC runtime library. | |
unsigned | GetDefaultDwarfVersion () const override |
bool | GetDefaultStandaloneDebug () const override |
llvm::DebuggerKind | getDefaultDebuggerTuning () const override |
Additional Inherited Members | |
Public Types inherited from clang::driver::toolchains::Darwin | |
enum | DarwinPlatformKind { MacOS , IPhoneOS , TvOS , WatchOS , DriverKit , XROS , LastDarwinPlatform = XROS } |
enum | DarwinEnvironmentKind { NativeEnvironment , Simulator , MacCatalyst } |
Public Types inherited from clang::driver::toolchains::MachO | |
enum | RuntimeLinkOptions : unsigned { RLO_AlwaysLink = 1 << 0 , RLO_IsEmbedded = 1 << 1 , RLO_AddRPath = 1 << 2 } |
Options to control how a runtime library is linked. More... | |
Public Types inherited from clang::driver::ToolChain | |
enum | CXXStdlibType { CST_Libcxx , CST_Libstdcxx } |
enum | RuntimeLibType { RLT_CompilerRT , RLT_Libgcc } |
enum | UnwindLibType { UNW_None , UNW_CompilerRT , UNW_Libgcc } |
enum class | UnwindTableLevel { None , Synchronous , Asynchronous } |
enum | RTTIMode { RM_Enabled , RM_Disabled } |
enum | ExceptionsMode { EM_Enabled , EM_Disabled } |
enum | FileType { FT_Object , FT_Static , FT_Shared } |
using | path_list = SmallVector< std::string, 16 > |
Static Public Member Functions inherited from clang::driver::toolchains::Darwin | |
static StringRef | getSDKName (StringRef isysroot) |
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 . | |
static bool | needsProfileRT (const llvm::opt::ArgList &Args) |
needsProfileRT - returns true if instrumentation profile is on. | |
static bool | needsGCovInstrumentation (const llvm::opt::ArgList &Args) |
Returns true if gcov instrumentation (-fprofile-arcs or –coverage) is on. | |
static llvm::Triple | getOpenMPTriple (StringRef TripleStr) |
Public Attributes inherited from clang::driver::toolchains::Darwin | |
bool | TargetInitialized |
Whether the information on the target has been initialized. | |
DarwinPlatformKind | TargetPlatform |
DarwinEnvironmentKind | TargetEnvironment |
VersionTuple | TargetVersion |
The native OS version we are targeting. | |
VersionTuple | OSTargetVersion |
The OS version we are targeting as specified in the triple. | |
std::optional< DarwinSDKInfo > | SDKInfo |
The information about the darwin SDK that was used. | |
std::optional< llvm::Triple > | TargetVariantTriple |
The target variant triple that was specified (if any). | |
LazyDetector< CudaInstallationDetector > | CudaInstallation |
LazyDetector< RocmInstallationDetector > | RocmInstallation |
Protected Member Functions inherited from clang::driver::toolchains::Darwin | |
void | setTarget (DarwinPlatformKind Platform, DarwinEnvironmentKind Environment, unsigned Major, unsigned Minor, unsigned Micro, VersionTuple NativeTargetVersion) const |
bool | isAlignedAllocationUnavailable () const |
Return true if c++17 aligned allocation/deallocation functions are not implemented in the c++ standard library of the deployment target we are targeting. | |
bool | isSizedDeallocationUnavailable () const |
Return true if c++14 sized deallocation functions are not implemented in the c++ standard library of the deployment target we are targeting. | |
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. | |
void | addClangCC1ASTargetOptions (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1ASArgs) const override |
Add options that need to be passed to cc1as for this target. | |
StringRef | getPlatformFamily () const |
StringRef | getOSLibraryNameSuffix (bool IgnoreSim=false) const override |
Protected Member Functions inherited from clang::driver::toolchains::MachO | |
Tool * | buildAssembler () const override |
Tool * | buildLinker () const override |
Tool * | buildStaticLibTool () const override |
Tool * | getTool (Action::ActionClass AC) const override |
Protected Member Functions inherited from clang::driver::ToolChain | |
ToolChain (const Driver &D, const llvm::Triple &T, const llvm::opt::ArgList &Args) | |
llvm::Expected< std::unique_ptr< llvm::MemoryBuffer > > | executeToolChainProgram (StringRef Executable) const |
Executes the given Executable and returns the stdout. | |
void | setTripleEnvironment (llvm::Triple::EnvironmentType Env) |
virtual Tool * | buildAssembler () const |
virtual Tool * | buildLinker () const |
virtual Tool * | buildStaticLibTool () const |
virtual Tool * | getTool (Action::ActionClass AC) const |
virtual std::string | buildCompilerRTBasename (const llvm::opt::ArgList &Args, StringRef Component, FileType Type, bool AddArch) const |
std::optional< std::string > | getTargetSubDirPath (StringRef BaseDir) const |
Find the target-specific subdirectory for the current target triple under BaseDir , doing fallback triple searches as necessary. | |
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. | |
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. | |
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. | |
static std::string | concat (StringRef Path, const Twine &A, const Twine &B="", const Twine &C="", const Twine &D="") |
Protected Attributes inherited from clang::driver::ToolChain | |
MultilibSet | Multilibs |
llvm::SmallVector< Multilib > | SelectedMultilibs |
DarwinClang - The Darwin toolchain used by Clang.
DarwinClang::DarwinClang | ( | const Driver & | D, |
const llvm::Triple & | Triple, | ||
const llvm::opt::ArgList & | Args | ||
) |
Definition at line 1143 of file Darwin.cpp.
|
overridevirtual |
AddCCKextLibArgs - Add the system specific linker arguments to use for kernel extensions (Darwin-specific).
Reimplemented from clang::driver::ToolChain.
Definition at line 2681 of file Darwin.cpp.
References clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getVFS(), clang::driver::toolchains::Darwin::isTargetDriverKit(), clang::driver::toolchains::Darwin::isTargetIPhoneOS(), clang::driver::toolchains::Darwin::isTargetTvOS(), clang::driver::toolchains::Darwin::isTargetWatchOS(), clang::driver::toolchains::Darwin::isTargetXROSDevice(), and P.
|
overridevirtual |
AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type.
Reimplemented from clang::driver::ToolChain.
Definition at line 2530 of file Darwin.cpp.
References clang::driver::ToolChain::AddClangCXXStdlibIncludeArgs(), clang::driver::ToolChain::addSystemInclude(), arch, clang::driver::ToolChain::CST_Libcxx, clang::driver::ToolChain::CST_Libstdcxx, clang::driver::Driver::Diag(), clang::driver::ToolChain::GetCXXStdlibType(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getTriple(), and clang::driver::ToolChain::getVFS().
|
overridevirtual |
Add the clang cc1 arguments for system include paths.
This routine is responsible for adding the necessary cc1 arguments to include headers from standard system header directories.
Reimplemented from clang::driver::ToolChain.
Definition at line 2451 of file Darwin.cpp.
References clang::driver::ToolChain::addExternCSystemInclude(), clang::driver::ToolChain::addSystemInclude(), D, clang::driver::ToolChain::getDriver(), and P.
|
overridevirtual |
Add warning options that need to be passed to cc1 for this target.
Reimplemented from clang::driver::ToolChain.
Definition at line 1147 of file Darwin.cpp.
References clang::driver::ToolChain::getTriple(), clang::driver::toolchains::Darwin::isTargetMacOS(), and clang::driver::toolchains::Darwin::isTargetWatchOSBased().
|
overridevirtual |
AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type.
Reimplemented from clang::driver::ToolChain.
Definition at line 2634 of file Darwin.cpp.
References clang::driver::ToolChain::CST_Libcxx, clang::driver::ToolChain::CST_Libstdcxx, clang::driver::ToolChain::GetCXXStdlibType(), clang::driver::ToolChain::getVFS(), and P.
Referenced by AddLinkRuntimeLibArgs().
|
overridevirtual |
Add the linker arguments to link the ARC runtime library.
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 1178 of file Darwin.cpp.
References clang::driver::Driver::Diag(), clang::driver::ToolChain::getArch(), clang::driver::toolchains::Darwin::getDefaultObjCRuntime(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getTriple(), clang::driver::ToolChain::getVFS(), getXcodeDeveloperPath(), clang::ObjCRuntime::hasNativeARC(), clang::ObjCRuntime::hasSubscripting(), clang::driver::tools::isObjCAutoRefCount(), clang::driver::toolchains::Darwin::isTargetAppleSiliconMac(), clang::driver::toolchains::Darwin::isTargetIOSSimulator(), clang::driver::toolchains::Darwin::isTargetIPhoneOS(), clang::driver::toolchains::Darwin::isTargetMacOSBased(), clang::driver::toolchains::Darwin::isTargetTvOS(), clang::driver::toolchains::Darwin::isTargetTvOSSimulator(), clang::driver::toolchains::Darwin::isTargetWatchOS(), clang::driver::toolchains::Darwin::isTargetWatchOSSimulator(), clang::driver::toolchains::Darwin::isTargetXROS(), and P.
|
overridevirtual |
Add the linker arguments to link the compiler runtime library.
FIXME: This API is intended for use with embedded libraries only, and is misleadingly named.
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 1492 of file Darwin.cpp.
References AddCXXStdlibLibArgs(), clang::driver::toolchains::MachO::AddLinkRuntimeLib(), clang::driver::Driver::Diag(), clang::driver::ToolChain::getArch(), clang::driver::ToolChain::getDriver(), GetRuntimeLibType(), clang::driver::ToolChain::getSanitizerArgs(), clang::driver::ToolChain::getTriple(), clang::driver::ToolChain::getXRayArgs(), clang::driver::toolchains::Darwin::isIPhoneOSVersionLT(), clang::driver::toolchains::Darwin::isTargetDriverKit(), clang::driver::toolchains::Darwin::isTargetIOSBased(), clang::driver::toolchains::Darwin::isTargetIOSSimulator(), clang::driver::SanitizerArgs::linkRuntimes(), clang::driver::SanitizerArgs::needsAsanRt(), clang::driver::SanitizerArgs::needsFuzzer(), clang::driver::SanitizerArgs::needsLsanRt(), clang::driver::SanitizerArgs::needsSharedRt(), clang::driver::SanitizerArgs::needsStableAbi(), clang::driver::SanitizerArgs::needsStatsRt(), clang::driver::SanitizerArgs::needsTsanRt(), clang::driver::SanitizerArgs::needsUbsanRt(), clang::driver::XRayArgs::needsXRayRt(), clang::driver::SanitizerArgs::requiresMinimalRuntime(), and clang::driver::toolchains::MachO::RLO_AlwaysLink.
|
inlineoverridevirtual |
Reimplemented from clang::driver::ToolChain.
|
overridevirtual |
Reimplemented from clang::driver::ToolChain.
Definition at line 1255 of file Darwin.cpp.
References clang::driver::toolchains::Darwin::isIPhoneOSVersionLT(), clang::driver::toolchains::Darwin::isMacosxVersionLT(), clang::driver::toolchains::Darwin::isTargetDriverKit(), clang::driver::toolchains::Darwin::isTargetIOSBased(), clang::driver::toolchains::Darwin::isTargetMacOSBased(), clang::driver::toolchains::Darwin::isTargetWatchOSBased(), clang::driver::toolchains::Darwin::isTargetXROS(), and clang::driver::toolchains::Darwin::TargetVersion.
|
inlineoverridevirtual |
Reimplemented from clang::driver::ToolChain.
|
overridevirtual |
Reimplemented from clang::driver::ToolChain.
Definition at line 1480 of file Darwin.cpp.
References clang::driver::Driver::Diag(), clang::driver::ToolChain::getDriver(), and clang::driver::ToolChain::RLT_CompilerRT.
Referenced by AddLinkRuntimeLibArgs().