|
clang
3.8.0
|
Darwin - The base Darwin tool chain. More...
#include <ToolChains.h>
Public Types | |
| enum | DarwinPlatformKind { MacOS, IPhoneOS, IPhoneOSSimulator, TvOS, TvOSSimulator, WatchOS, WatchOSSimulator } |
Public Types inherited from clang::driver::ToolChain | |
| enum | CXXStdlibType { CST_Libcxx, CST_Libstdcxx } |
| enum | RuntimeLibType { RLT_CompilerRT, RLT_Libgcc } |
| enum | RTTIMode { RM_EnabledExplicitly, RM_EnabledImplicitly, RM_DisabledExplicitly, RM_DisabledImplicitly } |
| typedef SmallVector < std::string, 16 > | path_list |
Public Member Functions | |
| Darwin (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) | |
| Darwin - Darwin tool chain for i386 and x86_64. More... | |
| ~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. More... | |
Apple Specific Toolchain Implementation | |
{ | |
| void | addMinVersionArgs (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. More... | |
| void | addProfileRTLibs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override |
| Add any profiling runtime libraries that are needed. More... | |
ToolChain Implementation | |
} { | |
| bool | isCrossCompiling () const override |
| Returns true if the toolchain is targeting a non-native architecture. More... | |
| llvm::opt::DerivedArgList * | TranslateArgs (const llvm::opt::DerivedArgList &Args, const char *BoundArch) 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... | |
| ObjCRuntime | getDefaultObjCRuntime (bool isNonFragile) const override |
| Darwin provides an ARC runtime starting in MacOS X 10.7 and iOS 5.0. More... | |
| bool | hasBlocksRuntime () const override |
| Darwin provides a blocks runtime starting in MacOS X 10.6 and iOS 3.2. More... | |
| bool | UseObjCMixedDispatch () const override |
| UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used? More... | |
| unsigned | GetDefaultStackProtectorLevel (bool KernelOrKext) const override |
| GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain (0=off, 1=on, 2=strong, 3=all). More... | |
| bool | SupportsObjCGC () const override |
| Does this tool chain support Objective-C garbage collection. More... | |
| void | CheckObjCARC () const override |
| Complain if this tool chain doesn't support Objective-C ARC. More... | |
| bool | UseSjLjExceptions (const llvm::opt::ArgList &Args) const override |
| UseSjLjExceptions - Does this tool chain use SjLj exceptions. More... | |
| SanitizerMask | getSupportedSanitizers () const override |
| Return sanitizers which are available in this toolchain. More... | |
Public Member Functions inherited from clang::driver::toolchains::MachO | |
| MachO (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) | |
| ~MachO () override | |
| StringRef | getMachOArchName (const llvm::opt::ArgList &Args) const |
| Get the "MachO" arch name for a particular compiler invocation. More... | |
| virtual void | AddLinkARCArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
| Add the linker arguments to link the ARC runtime library. More... | |
| virtual void | AddLinkRuntimeLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
| Add the linker arguments to link the compiler runtime library. More... | |
| bool | isTargetIOSBased () const |
| Is the target either iOS or an iOS simulator? More... | |
| void | AddLinkRuntimeLib (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, StringRef DarwinLibName, bool AlwaysLink=false, bool IsEmbedded=false, bool AddRPath=false) const |
| types::ID | LookupTypeForExtension (const char *Ext) const override |
| LookupTypeForExtension - Return the default language type to use for the given extension. More... | |
| bool | HasNativeLLVMSupport () const override |
| HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support. More... | |
| bool | IsBlocksDefault () const override |
| IsBlocksDefault - Does this tool chain enable -fblocks by default. More... | |
| bool | IsIntegratedAssemblerDefault () const override |
| IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default. More... | |
| bool | IsMathErrnoDefault () const override |
| IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. More... | |
| bool | IsEncodeExtendedBlockSignatureDefault () const override |
| IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default. More... | |
| bool | IsObjCNonFragileABIDefault () const override |
| IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default. More... | |
| bool | IsUnwindTablesDefault () const override |
| IsUnwindTablesDefault - Does this tool chain use -funwind-tables by default. More... | |
| RuntimeLibType | GetDefaultRuntimeLibType () const override |
| GetDefaultRuntimeLibType - Get the default runtime library variant to use. 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 | SupportsProfiling () const override |
| SupportsProfiling - Does this tool chain support -pg. More... | |
| bool | UseDwarfDebugFlags () const override |
| UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information. More... | |
Public Member Functions inherited from clang::driver::ToolChain | |
| virtual | ~ToolChain () |
| const Driver & | getDriver () const |
| vfs::FileSystem & | getVFS () const |
| const llvm::Triple & | getTriple () const |
| 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 |
| path_list & | getFilePaths () |
| const path_list & | getFilePaths () const |
| path_list & | getProgramPaths () |
| const path_list & | getProgramPaths () const |
| const MultilibSet & | getMultilibs () const |
| const SanitizerArgs & | getSanitizerArgs () const |
| const llvm::opt::Arg * | getRTTIArg () const |
| RTTIMode | getRTTIMode () const |
| 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 void | printVerboseInfo (raw_ostream &OS) const |
| Dispatch to the specific toolchain for verbose printing. More... | |
| bool | useIntegratedAs () const |
| Check if the toolchain should use the integrated assembler. More... | |
| 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 |
| virtual unsigned | GetDefaultDwarfVersion () const |
| virtual bool | GetDefaultStandaloneDebug () const |
| virtual llvm::DebuggerKind | getDefaultDebuggerTuning () const |
| 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 void | AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
| Add the clang cc1 arguments for system include paths. More... | |
| virtual void | addClangTargetOptions (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
| Add options that need to be passed to cc1 for this target. 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 |
| 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. More... | |
| 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. 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 | AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
| Add arguments to use system-specific CUDA includes. More... | |
Public Attributes | |
| bool | TargetInitialized |
| Whether the information on the target has been initialized. More... | |
| DarwinPlatformKind | TargetPlatform |
| VersionTuple | TargetVersion |
| The OS version we are targeting. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from clang::driver::ToolChain | |
| static std::pair< std::string, std::string > | 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 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::ToolChain | |
| MultilibSet | Multilibs |
| const char * | DefaultLinker = "ld" |
Darwin - The base Darwin tool chain.
Definition at line 354 of file ToolChains.h.
| Enumerator | |
|---|---|
| MacOS | |
| IPhoneOS | |
| IPhoneOSSimulator | |
| TvOS | |
| TvOSSimulator | |
| WatchOS | |
| WatchOSSimulator | |
Definition at line 363 of file ToolChains.h.
| Darwin::Darwin | ( | const Driver & | D, |
| const llvm::Triple & | Triple, | ||
| const llvm::opt::ArgList & | Args | ||
| ) |
Darwin - Darwin tool chain for i386 and x86_64.
Definition at line 53 of file ToolChains.cpp.
|
override |
Definition at line 164 of file ToolChains.cpp.
|
overridevirtual |
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 1088 of file ToolChains.cpp.
References clang::VersionTuple::getAsString(), getTargetVersion(), isTargetIOSBased(), isTargetIOSSimulator(), isTargetMacOS(), isTargetTvOS(), isTargetTvOSSimulator(), isTargetWatchOS(), isTargetWatchOSSimulator(), and TargetVersion.
|
overridevirtual |
Add any profiling runtime libraries that are needed.
This is essentially a MachO specific version of addProfileRT in Tools.cpp.
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 322 of file ToolChains.cpp.
References clang::driver::toolchains::MachO::AddLinkRuntimeLib(), clang::vfs::FileSystem::exists(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getVFS(), isTargetIOSSimulator(), isTargetIPhoneOS(), isTargetMacOS(), isTargetTvOS(), isTargetTvOSSimulator(), isTargetWatchOS(), isTargetWatchOSSimulator(), clang::driver::ToolChain::needsProfileRT(), and P.
|
overridevirtual |
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 1112 of file ToolChains.cpp.
References clang::driver::ToolChain::getArch(), clang::driver::ToolChain::GetFilePath(), isIPhoneOSVersionLT(), isMacosxVersionLT(), isTargetIOSSimulator(), isTargetIPhoneOS(), isTargetMacOS(), isTargetWatchOS(), isTargetWatchOSBased(), and clang::driver::toolchains::MachO::SupportsProfiling().
|
overridevirtual |
Complain if this tool chain doesn't support Objective-C ARC.
Reimplemented from clang::driver::ToolChain.
Definition at line 1207 of file ToolChains.cpp.
References clang::driver::Driver::Diag(), clang::driver::ToolChain::getDriver(), isMacosxVersionLT(), isTargetIOSBased(), isTargetMacOS(), and isTargetWatchOSBased().
|
overridevirtual |
ComputeEffectiveClangTriple - Return the Clang triple to use for this target, which may take into account the command line arguments.
For example, on Darwin the -mmacosx-version-min= command line argument (which sets the deployment target) determines the version in the triple passed to Clang.
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 175 of file ToolChains.cpp.
References clang::driver::ToolChain::ComputeLLVMTriple(), clang::VersionTuple::getAsString(), getTargetVersion(), isTargetInitialized(), isTargetIOSBased(), isTargetTvOSBased(), and isTargetWatchOSBased().
|
overridevirtual |
Darwin provides an ARC runtime starting in MacOS X 10.7 and iOS 5.0.
Reimplemented from clang::driver::ToolChain.
Definition at line 69 of file ToolChains.cpp.
References clang::ObjCRuntime::FragileMacOSX, clang::ObjCRuntime::iOS, isTargetIOSBased(), isTargetWatchOSBased(), clang::ObjCRuntime::MacOSX, TargetVersion, and clang::ObjCRuntime::WatchOS.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkARCArgs().
|
inlineoverridevirtual |
GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain (0=off, 1=on, 2=strong, 3=all).
Reimplemented from clang::driver::ToolChain.
Definition at line 520 of file ToolChains.h.
|
overridevirtual |
Return sanitizers which are available in this toolchain.
Reimplemented from clang::driver::ToolChain.
Definition at line 1214 of file ToolChains.cpp.
References clang::driver::ToolChain::getSupportedSanitizers(), isMacosxVersionLT(), isTargetIOSSimulator(), and isTargetMacOS().
|
inlineprotected |
Definition at line 480 of file ToolChains.h.
Referenced by addMinVersionArgs(), and ComputeEffectiveClangTriple().
|
overridevirtual |
Darwin provides a blocks runtime starting in MacOS X 10.6 and iOS 3.2.
Reimplemented from clang::driver::ToolChain.
Definition at line 80 of file ToolChains.cpp.
References isIPhoneOSVersionLT(), isMacosxVersionLT(), isTargetIOSBased(), isTargetMacOS(), and isTargetWatchOSBased().
|
inlineoverridevirtual |
Returns true if the toolchain is targeting a non-native architecture.
Reimplemented from clang::driver::ToolChain.
Definition at line 504 of file ToolChains.h.
|
inlineprotected |
Definition at line 485 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), addStartObjectFileArgs(), hasBlocksRuntime(), and TranslateArgs().
|
inlineoverridevirtual |
On some iOS platforms, kernel and kernel modules were built statically.
Is this such a target?
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 398 of file ToolChains.h.
|
inlineprotected |
Definition at line 491 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), addStartObjectFileArgs(), CheckObjCARC(), getSupportedSanitizers(), hasBlocksRuntime(), and TranslateArgs().
|
inlineprotected |
Definition at line 478 of file ToolChains.h.
Referenced by ComputeEffectiveClangTriple().
|
inlineprotected |
Definition at line 438 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), addMinVersionArgs(), CheckObjCARC(), ComputeEffectiveClangTriple(), getDefaultObjCRuntime(), hasBlocksRuntime(), and TranslateArgs().
|
inlineprotected |
Definition at line 432 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), addMinVersionArgs(), addProfileRTLibs(), addStartObjectFileArgs(), and getSupportedSanitizers().
|
inlineprotected |
Definition at line 427 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddCCKextLibArgs(), clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), addProfileRTLibs(), and addStartObjectFileArgs().
|
inlineprotected |
Definition at line 473 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::addClangWarningOptions(), clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), addMinVersionArgs(), addProfileRTLibs(), addStartObjectFileArgs(), CheckObjCARC(), getSupportedSanitizers(), hasBlocksRuntime(), SupportsObjCGC(), and TranslateArgs().
|
inlineprotected |
Definition at line 443 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddCCKextLibArgs(), clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), addMinVersionArgs(), and addProfileRTLibs().
|
inlineprotected |
Definition at line 453 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), and ComputeEffectiveClangTriple().
|
inlineprotected |
Definition at line 448 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), addMinVersionArgs(), and addProfileRTLibs().
|
inlineprotected |
Definition at line 458 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddCCKextLibArgs(), clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), addMinVersionArgs(), addProfileRTLibs(), addStartObjectFileArgs(), and UseSjLjExceptions().
|
inlineprotected |
Definition at line 468 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::addClangWarningOptions(), clang::driver::toolchains::DarwinClang::AddLinkRuntimeLibArgs(), addStartObjectFileArgs(), CheckObjCARC(), ComputeEffectiveClangTriple(), getDefaultObjCRuntime(), hasBlocksRuntime(), and TranslateArgs().
|
inlineprotected |
Definition at line 463 of file ToolChains.h.
Referenced by clang::driver::toolchains::DarwinClang::AddLinkARCArgs(), addMinVersionArgs(), and addProfileRTLibs().
|
inlineprotected |
Definition at line 413 of file ToolChains.h.
|
overridevirtual |
Does this tool chain support Objective-C garbage collection.
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 1205 of file ToolChains.cpp.
References isTargetMacOS().
|
overridevirtual |
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.
| BoundArch | - The bound architecture name, or 0. |
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 993 of file ToolChains.cpp.
References clang::driver::ToolChain::CST_Libcxx, clang::driver::Driver::Diag(), clang::driver::ToolChain::GetCXXStdlibType(), clang::driver::ToolChain::getDriver(), clang::driver::Driver::getOpts(), isIPhoneOSVersionLT(), isMacosxVersionLT(), isTargetIOSBased(), isTargetMacOS(), isTargetWatchOSBased(), and clang::driver::toolchains::MachO::TranslateArgs().
|
inlineoverridevirtual |
UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used?
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 513 of file ToolChains.h.
|
overridevirtual |
UseSjLjExceptions - Does this tool chain use SjLj exceptions.
Reimplemented from clang::driver::toolchains::MachO.
Definition at line 1064 of file ToolChains.cpp.
References clang::driver::ToolChain::getArch(), clang::driver::ToolChain::getTriple(), and isTargetWatchOS().
|
mutable |
Whether the information on the target has been initialized.
Definition at line 361 of file ToolChains.h.
|
mutable |
Definition at line 373 of file ToolChains.h.
|
mutable |
The OS version we are targeting.
Definition at line 376 of file ToolChains.h.
Referenced by addMinVersionArgs(), and getDefaultObjCRuntime().
1.8.6