10 #ifndef LLVM_CLANG_DRIVER_TOOLCHAIN_H
11 #define LLVM_CLANG_DRIVER_TOOLCHAIN_H
18 #include "llvm/ADT/SmallVector.h"
19 #include "llvm/ADT/Triple.h"
20 #include "llvm/Support/Path.h"
66 const llvm::Triple Triple;
67 const llvm::opt::ArgList &Args;
69 const llvm::opt::Arg *
const CachedRTTIArg;
80 mutable std::unique_ptr<Tool> Clang;
81 mutable std::unique_ptr<Tool> Assemble;
82 mutable std::unique_ptr<Tool> Link;
83 Tool *getClang()
const;
84 Tool *getAssemble()
const;
85 Tool *getLink()
const;
86 Tool *getClangAs()
const;
88 mutable std::unique_ptr<SanitizerArgs> SanitizerArguments;
94 const llvm::opt::ArgList &Args);
103 llvm::opt::ArgStringList &CC1Args,
106 llvm::opt::ArgStringList &CC1Args,
110 llvm::opt::ArgStringList &CC1Args,
113 llvm::opt::ArgStringList &CC1Args,
123 const llvm::Triple &
getTriple()
const {
return Triple; }
125 llvm::Triple::ArchType
getArch()
const {
return Triple.getArch(); }
128 StringRef
getOS()
const {
return Triple.getOSName(); }
135 return Triple.getTriple();
149 const llvm::opt::Arg *
getRTTIArg()
const {
return CachedRTTIArg; }
161 virtual llvm::opt::DerivedArgList *
163 const char *BoundArch)
const {
289 const llvm::opt::ArgList &Args,
311 llvm::opt::ArgStringList &CC1Args)
const;
315 llvm::opt::ArgStringList &CC1Args)
const;
333 llvm::opt::ArgStringList &CC1Args)
const;
338 llvm::opt::ArgStringList &CmdArgs)
const;
343 llvm::opt::ArgStringList &CmdArgs)
const;
351 llvm::opt::ArgStringList &CmdArgs)
const;
Defines the clang::SanitizerKind enum.
The basic abstraction for the target Objective-C runtime.