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 | 54cbc706b10569a0ff6026d6e22f4005bddd181a (patch) | |
tree | 53c419ca580016cb689e2efffe91961ab54f3c26 /clang/lib/Lex/PPLexerChange.cpp | |
parent | ae5438701e3997e48d8d47ab8feb2cbc3dc50f51 (diff) | |
download | bcm5719-llvm-54cbc706b10569a0ff6026d6e22f4005bddd181a.tar.gz bcm5719-llvm-54cbc706b10569a0ff6026d6e22f4005bddd181a.zip |
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.
llvm-svn: 211746
Diffstat (limited to 'clang/lib/Lex/PPLexerChange.cpp')
-rw-r--r-- | clang/lib/Lex/PPLexerChange.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Lex/PPLexerChange.cpp b/clang/lib/Lex/PPLexerChange.cpp index 81bb077632f..75862931519 100644 --- a/clang/lib/Lex/PPLexerChange.cpp +++ b/clang/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. |