summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Driver.cpp
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2019-05-29 00:01:05 +0000
committerPetr Hosek <phosek@chromium.org>2019-05-29 00:01:05 +0000
commit92d706eaca6cc79501066eae4392b600008e52c1 (patch)
tree850e878aa4d7d9962db023ede5098c7258a66b0c /clang/lib/Driver/Driver.cpp
parent26212da5553a20a4a1dd4126514cb5697230fa53 (diff)
downloadbcm5719-llvm-92d706eaca6cc79501066eae4392b600008e52c1.tar.gz
bcm5719-llvm-92d706eaca6cc79501066eae4392b600008e52c1.zip
[Driver] Search the toolchain dir with -print-file-name
This is useful when looking for directories or files relative to the toolchain root, e.g. include/c++/v1. This change also adds a test to make sure this functionality doesn't regress in the future. Differential Revision: https://reviews.llvm.org/D62558 llvm-svn: 361903
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r--clang/lib/Driver/Driver.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 4c153bf3348..a57c66403a2 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -4437,6 +4437,11 @@ std::string Driver::GetFilePath(StringRef Name, const ToolChain &TC) const {
if (llvm::sys::fs::exists(Twine(P)))
return P.str();
+ SmallString<128> D(Dir);
+ llvm::sys::path::append(D, "..", Name);
+ if (llvm::sys::fs::exists(Twine(D)))
+ return D.str();
+
if (auto P = SearchPaths(TC.getLibraryPaths()))
return *P;
OpenPOWER on IntegriCloud