diff options
author | Ben Langmuir <blangmuir@apple.com> | 2014-06-25 23:53:43 +0000 |
---|---|---|
committer | Ben Langmuir <blangmuir@apple.com> | 2014-06-25 23:53:43 +0000 |
commit | 0dfafa59cace8b477d3ae3ab89f2e662fea0954c (patch) | |
tree | 73ad65b0913ded486b89da814be33b765a7910b7 /lib | |
parent | 740214c8b65b0d67e0bbf6e692735e5ac372cbd4 (diff) | |
download | clang-0dfafa59cace8b477d3ae3ab89f2e662fea0954c.tar.gz clang-0dfafa59cace8b477d3ae3ab89f2e662fea0954c.tar.bz2 clang-0dfafa59cace8b477d3ae3ab89f2e662fea0954c.tar.xz |
Make -Wincomplete-umbrella go through the VFS
By using vfs::recursive_directory_iterator, this warning will now fire
when some or all of a module's headers are from VFS mappings.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211746 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Lex/PPLexerChange.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp index 81bb077632..7586293151 100644 --- a/lib/Lex/PPLexerChange.cpp +++ b/lib/Lex/PPLexerChange.cpp @@ -455,19 +455,21 @@ bool Preprocessor::HandleEndOfFile(Token &Result, bool isEndOfMacro) { typedef llvm::sys::fs::recursive_directory_iterator recursive_directory_iterator; const DirectoryEntry *Dir = Mod->getUmbrellaDir(); + vfs::FileSystem &FS = *FileMgr.getVirtualFileSystem(); std::error_code EC; - for (recursive_directory_iterator Entry(Dir->getName(), EC), End; + for (vfs::recursive_directory_iterator Entry(FS, Dir->getName(), EC), End; Entry != End && !EC; Entry.increment(EC)) { using llvm::StringSwitch; // Check whether this entry has an extension typically associated with // headers. - if (!StringSwitch<bool>(llvm::sys::path::extension(Entry->path())) + if (!StringSwitch<bool>(llvm::sys::path::extension(Entry->getName())) .Cases(".h", ".H", ".hh", ".hpp", true) .Default(false)) continue; - if (const FileEntry *Header = getFileManager().getFile(Entry->path())) + if (const FileEntry *Header = + getFileManager().getFile(Entry->getName())) if (!getSourceManager().hasFileInfo(Header)) { if (!ModMap.isHeaderInUnavailableModule(Header)) { // Find the relative path that would access this header. |