diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-06-16 00:08:24 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-06-16 00:08:24 +0000 |
commit | 47972afd102f557553d7c6555240bd80982afdd1 (patch) | |
tree | 0bed0c1be68a6498c9b574dd7fe883aa450bda66 /clang/lib/Lex/ModuleMap.cpp | |
parent | 345c1449c821a815d23f874d7cb9890003ce2cc1 (diff) | |
download | bcm5719-llvm-47972afd102f557553d7c6555240bd80982afdd1.tar.gz bcm5719-llvm-47972afd102f557553d7c6555240bd80982afdd1.zip |
[modules] Simplify -cc1 interface for enabling implicit module maps.
We used to have a flag to enable module maps, and two more flags to enable
implicit module maps. This is all redundant; we don't need any flag for
enabling module maps in the abstract, and we don't usually have -fno- flags for
-cc1. We now have just a single flag, -fimplicit-module-maps, that enables
implicitly searching the file system for module map files and loading them.
The driver interface is unchanged for now. We should probably rename
-fmodule-maps to -fimplicit-module-maps at some point.
llvm-svn: 239789
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
-rw-r--r-- | clang/lib/Lex/ModuleMap.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index c67ce248010..6c98d01c170 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/lib/Lex/ModuleMap.cpp @@ -165,7 +165,8 @@ static bool isBuiltinHeader(StringRef FileName) { ModuleMap::HeadersMap::iterator ModuleMap::findKnownHeader(const FileEntry *File) { HeadersMap::iterator Known = Headers.find(File); - if (Known == Headers.end() && File->getDir() == BuiltinIncludeDir && + if (HeaderInfo.getHeaderSearchOpts().ImplicitModuleMaps && + Known == Headers.end() && File->getDir() == BuiltinIncludeDir && isBuiltinHeader(llvm::sys::path::filename(File->getName()))) { HeaderInfo.loadTopLevelSystemModules(); return Headers.find(File); @@ -176,6 +177,9 @@ ModuleMap::findKnownHeader(const FileEntry *File) { ModuleMap::KnownHeader ModuleMap::findHeaderInUmbrellaDirs(const FileEntry *File, SmallVectorImpl<const DirectoryEntry *> &IntermediateDirs) { + if (UmbrellaDirs.empty()) + return KnownHeader(); + const DirectoryEntry *Dir = File->getDir(); assert(Dir && "file in no directory"); |