summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-06-30 15:15:38 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-06-30 15:15:38 +0000
commita517a0a5206666a9237409cc50da6acd64e4b01a (patch)
tree6d9a689631595b8c507cdd16c4853b216d61ea79 /clang/lib
parent8843aab83aba49198a9925025cc974884229b23e (diff)
downloadbcm5719-llvm-a517a0a5206666a9237409cc50da6acd64e4b01a.tar.gz
bcm5719-llvm-a517a0a5206666a9237409cc50da6acd64e4b01a.zip
Driver: honor -nostdinc and -isystem-after on CrossWindows
This changes CrossWindows to look for -nostdinc instead of -nostdlibinc. In addition, fixes a bug where -isystem-after options would be dropped when called with -nostdinc. Patch by Dave Lee! llvm-svn: 306829
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Driver/ToolChains/CrossWindows.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/clang/lib/Driver/ToolChains/CrossWindows.cpp b/clang/lib/Driver/ToolChains/CrossWindows.cpp
index d290c62a056..7d0c438b136 100644
--- a/clang/lib/Driver/ToolChains/CrossWindows.cpp
+++ b/clang/lib/Driver/ToolChains/CrossWindows.cpp
@@ -238,8 +238,15 @@ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
const Driver &D = getDriver();
const std::string &SysRoot = D.SysRoot;
- if (DriverArgs.hasArg(options::OPT_nostdlibinc))
+ auto AddSystemAfterIncludes = [&]() {
+ for (const auto &P : DriverArgs.getAllArgValues(options::OPT_isystem_after))
+ addSystemInclude(DriverArgs, CC1Args, P);
+ };
+
+ if (DriverArgs.hasArg(options::OPT_nostdinc)) {
+ AddSystemAfterIncludes();
return;
+ }
addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include");
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
@@ -247,8 +254,7 @@ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
llvm::sys::path::append(ResourceDir, "include");
addSystemInclude(DriverArgs, CC1Args, ResourceDir);
}
- for (const auto &P : DriverArgs.getAllArgValues(options::OPT_isystem_after))
- addSystemInclude(DriverArgs, CC1Args, P);
+ AddSystemAfterIncludes();
addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include");
}
@@ -258,7 +264,7 @@ AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,
const llvm::Triple &Triple = getTriple();
const std::string &SysRoot = getDriver().SysRoot;
- if (DriverArgs.hasArg(options::OPT_nostdlibinc) ||
+ if (DriverArgs.hasArg(options::OPT_nostdinc) ||
DriverArgs.hasArg(options::OPT_nostdincxx))
return;
OpenPOWER on IntegriCloud