10 #ifndef LLVM_CLANG_DRIVER_TOOLCHAIN_H
11 #define LLVM_CLANG_DRIVER_TOOLCHAIN_H
19 #include "llvm/ADT/SmallVector.h"
20 #include "llvm/ADT/Triple.h"
21 #include "llvm/Support/Path.h"
22 #include "llvm/Target/TargetOptions.h"
71 const llvm::Triple Triple;
72 const llvm::opt::ArgList &Args;
74 const llvm::opt::Arg *
const CachedRTTIArg;
85 mutable std::unique_ptr<Tool> Clang;
86 mutable std::unique_ptr<Tool> Assemble;
87 mutable std::unique_ptr<Tool> Link;
88 Tool *getClang()
const;
89 Tool *getAssemble()
const;
90 Tool *getLink()
const;
91 Tool *getClangAs()
const;
93 mutable std::unique_ptr<SanitizerArgs> SanitizerArguments;
100 const llvm::opt::ArgList &Args);
109 llvm::opt::ArgStringList &CC1Args,
112 llvm::opt::ArgStringList &CC1Args,
116 llvm::opt::ArgStringList &CC1Args,
119 llvm::opt::ArgStringList &CC1Args,
130 const llvm::Triple &
getTriple()
const {
return Triple; }
132 llvm::Triple::ArchType
getArch()
const {
return Triple.getArch(); }
135 StringRef
getOS()
const {
return Triple.getOSName(); }
142 return Triple.getTriple();
156 const llvm::opt::Arg *
getRTTIArg()
const {
return CachedRTTIArg; }
172 static std::pair<std::string, std::string>
182 virtual llvm::opt::DerivedArgList *
184 const char *BoundArch)
const {
264 virtual std::string
getCompilerRT(
const llvm::opt::ArgList &Args,
266 bool Shared =
false)
const;
270 bool Shared =
false)
const;
315 return llvm::DebuggerKind::GDB;
346 const llvm::opt::ArgList &Args,
368 llvm::opt::ArgStringList &CC1Args)
const;
372 llvm::opt::ArgStringList &CC1Args)
const;
390 llvm::opt::ArgStringList &CC1Args)
const;
395 llvm::opt::ArgStringList &CmdArgs)
const;
399 llvm::opt::ArgStringList &CmdArgs)
const;
404 llvm::opt::ArgStringList &CmdArgs)
const;
411 const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
const;
415 llvm::opt::ArgStringList &CmdArgs)
const;
419 llvm::opt::ArgStringList &CC1Args)
const;
423 llvm::opt::ArgStringList &CC1Args)
const;
Represents a version number in the form major[.minor[.subminor[.build]]].
Defines the clang::SanitizerKind enum.
The virtual file system interface.
class LLVM_ALIGNAS(8) DependentTemplateSpecializationType const IdentifierInfo * Name
Represents a template specialization type whose template cannot be resolved, e.g. ...
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
The basic abstraction for the target Objective-C runtime.
Defines the clang::VersionTuple class, which represents a version in the form major[.minor[.subminor]].