summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuka Takahashi <yukatkh@gmail.com>2017-05-03 04:58:39 +0000
committerYuka Takahashi <yukatkh@gmail.com>2017-05-03 04:58:39 +0000
commit79d310713a618b5ba8d2a3ae9cbf58f2dae6899a (patch)
treebb095e6a18174a7339f1178f19738e1816428e45
parent7c4c1cb2f5e95be3f8dbe70ca0b75cb46cc6eb6a (diff)
downloadbcm5719-llvm-79d310713a618b5ba8d2a3ae9cbf58f2dae6899a.tar.gz
bcm5719-llvm-79d310713a618b5ba8d2a3ae9cbf58f2dae6899a.zip
Fix a bug that -isysroot is completely ignored on Unix
-isysroot is the flag which set the system root directory. This bug report https://bugs.llvm.org//show_bug.cgi?id=11503 shows that -isysroot is not handled at all on Unix, so fixed this bug. After this diff, I could get this result https://pastebin.com/TeCmn9mj . Differential Revision: https://reviews.llvm.org/D31495 llvm-svn: 301998
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp2
-rw-r--r--clang/test/Driver/sysroot-flags.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index d3ebf48315e..c69a7e64972 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -1565,7 +1565,7 @@ static void ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args,
frontend::IncludeDirGroup Group = frontend::System;
if (A->getOption().matches(OPT_internal_externc_isystem))
Group = frontend::ExternCSystem;
- Opts.AddPath(A->getValue(), Group, false, true);
+ Opts.AddPath(A->getValue(), Group, false, false);
}
// Add the path prefixes which are implicitly treated as being system headers.
diff --git a/clang/test/Driver/sysroot-flags.c b/clang/test/Driver/sysroot-flags.c
index b0a10bfca44..8149275d31c 100644
--- a/clang/test/Driver/sysroot-flags.c
+++ b/clang/test/Driver/sysroot-flags.c
@@ -26,3 +26,7 @@
// RUN: FileCheck %s -check-prefix=SYSROOT_SEPARATE
// SYSROOT_SEPARATE: "-isysroot" "{{[^"]*}}/foo/bar"
// SYSROOT_SEPARATE: "--sysroot{{" "|=}}{{[^"]*}}/foo/bar"
+
+// Check that -isysroot is handled properly
+// RUN: %clang -isysroot /foo/bar -c %s -v 2>&1 | \
+// RUN: grep "/foo/bar"
OpenPOWER on IntegriCloud