diff options
author | Alex Lorenz <arphaman@gmail.com> | 2018-11-14 01:08:03 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2018-11-14 01:08:03 +0000 |
commit | 7d76ef9b3d3e0aacd3bc5d067d29a09a1ceb8fdf (patch) | |
tree | fba1c139a935174711d2c0125a41e899cf295380 /clang/lib/Lex/HeaderSearch.cpp | |
parent | 6bdabcf368f4c6526cfb3af49c03a98d680b8e8f (diff) | |
download | bcm5719-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.cpp | 4 |
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)) { |