13 #include "llvm/Option/ArgList.h"
15 using namespace clang::driver;
16 using namespace clang::driver::toolchains;
19 const llvm::Triple &T,
20 const llvm::opt::ArgList &Args)
23 const std::string &SysRoot = D.
SysRoot;
35 return getArch() == llvm::Triple::x86_64;
39 return getArch() == llvm::Triple::x86_64;
43 return getArch() == llvm::Triple::x86_64;
47 return getArch() == llvm::Triple::x86_64;
52 llvm::opt::ArgStringList &CC1Args)
const {
54 const std::string &SysRoot = D.
SysRoot;
56 if (DriverArgs.hasArg(options::OPT_nostdlibinc))
60 if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
62 llvm::sys::path::append(ResourceDir,
"include");
65 for (
const auto &
P : DriverArgs.getAllArgValues(options::OPT_isystem_after))
72 llvm::opt::ArgStringList &CC1Args)
const {
76 if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
77 DriverArgs.hasArg(options::OPT_nostdincxx))
88 SysRoot +
"/usr/include/c++/" + Triple.str());
90 SysRoot +
"/usr/include/c++/backwards");
96 llvm::opt::ArgStringList &CC1Args)
const {
99 CC1Args.push_back(
"-lc++");
102 CC1Args.push_back(
"-lstdc++");
103 CC1Args.push_back(
"-lmingw32");
104 CC1Args.push_back(
"-lmingwex");
105 CC1Args.push_back(
"-lgcc");
106 CC1Args.push_back(
"-lmoldname");
107 CC1Args.push_back(
"-lmingw32");
114 Res |= SanitizerKind::Address;
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
std::string SysRoot
sysroot, if present
std::string ResourceDir
The path to the compiler resource directory.