aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2015-03-13 11:26:16 +0000
committerDaniel Jasper <djasper@google.com>2015-03-13 11:26:16 +0000
commitb6ba46ef304b2294e477dc4a3f571f38fbd47113 (patch)
tree73b0c39c3d5ba54e572de94dfce9b9a07219facd /clang/lib/Lex/ModuleMap.cpp
parent0deef9c3cbf4101b2a47d8663caf44294e587074 (diff)
downloadllvm-b6ba46ef304b2294e477dc4a3f571f38fbd47113.zip
llvm-b6ba46ef304b2294e477dc4a3f571f38fbd47113.tar.gz
llvm-b6ba46ef304b2294e477dc4a3f571f38fbd47113.tar.bz2
Make a module "use" also count as use of all its submodules
llvm-svn: 232159
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
-rw-r--r--clang/lib/Lex/ModuleMap.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp
index 4fbed2c..6aefb03 100644
--- a/clang/lib/Lex/ModuleMap.cpp
+++ b/clang/lib/Lex/ModuleMap.cpp
@@ -208,9 +208,11 @@ ModuleMap::findHeaderInUmbrellaDirs(const FileEntry *File,
// Returns true if RequestingModule directly uses RequestedModule.
static bool directlyUses(const Module *RequestingModule,
const Module *RequestedModule) {
- return std::find(RequestingModule->DirectUses.begin(),
- RequestingModule->DirectUses.end(),
- RequestedModule) != RequestingModule->DirectUses.end();
+ for (const Module* DirectUse : RequestingModule->DirectUses) {
+ if (RequestedModule->isSubModuleOf(DirectUse))
+ return true;
+ }
+ return false;
}
static bool violatesPrivateInclude(Module *RequestingModule,