diff options
author | Daniel Jasper <djasper@google.com> | 2015-03-13 11:26:16 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2015-03-13 11:26:16 +0000 |
commit | b6ba46ef304b2294e477dc4a3f571f38fbd47113 (patch) | |
tree | 73b0c39c3d5ba54e572de94dfce9b9a07219facd /clang/lib/Lex/ModuleMap.cpp | |
parent | 0deef9c3cbf4101b2a47d8663caf44294e587074 (diff) | |
download | llvm-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.cpp | 8 |
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, |