summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/HeaderSearch.cpp
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2018-11-14 01:08:03 +0000
committerAlex Lorenz <arphaman@gmail.com>2018-11-14 01:08:03 +0000
commit7d76ef9b3d3e0aacd3bc5d067d29a09a1ceb8fdf (patch)
treefba1c139a935174711d2c0125a41e899cf295380 /clang/lib/Lex/HeaderSearch.cpp
parent6bdabcf368f4c6526cfb3af49c03a98d680b8e8f (diff)
downloadbcm5719-llvm-7d76ef9b3d3e0aacd3bc5d067d29a09a1ceb8fdf.tar.gz
bcm5719-llvm-7d76ef9b3d3e0aacd3bc5d067d29a09a1ceb8fdf.zip
[HeaderSearch] loadSubdirectoryModuleMaps should respect -working-directory
Include search paths can be relative paths. The loadSubdirectoryModuleMaps function should account for that and respect the -working-directory parameter given to Clang. rdar://46045849 Differential Revision: https://reviews.llvm.org/D54503 llvm-svn: 346822
Diffstat (limited to 'clang/lib/Lex/HeaderSearch.cpp')
-rw-r--r--clang/lib/Lex/HeaderSearch.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp
index 27eca0a81c4..5b827b13c07 100644
--- a/clang/lib/Lex/HeaderSearch.cpp
+++ b/clang/lib/Lex/HeaderSearch.cpp
@@ -1638,8 +1638,10 @@ void HeaderSearch::loadSubdirectoryModuleMaps(DirectoryLookup &SearchDir) {
return;
std::error_code EC;
+ SmallString<128> Dir = SearchDir.getDir()->getName();
+ FileMgr.makeAbsolutePath(Dir);
SmallString<128> DirNative;
- llvm::sys::path::native(SearchDir.getDir()->getName(), DirNative);
+ llvm::sys::path::native(Dir, DirNative);
llvm::vfs::FileSystem &FS = *FileMgr.getVirtualFileSystem();
for (llvm::vfs::directory_iterator Dir = FS.dir_begin(DirNative, EC), DirEnd;
Dir != DirEnd && !EC; Dir.increment(EC)) {
OpenPOWER on IntegriCloud