summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2015-11-05 15:24:47 +0000
committerManuel Klimek <klimek@google.com>2015-11-05 15:24:47 +0000
commite8bd0db6988187ecea5bf9b0b6ebb12e15c63345 (patch)
treead7fde599036fb8f4905ed0a8d731fad08b16931 /clang/lib/Lex/ModuleMap.cpp
parentac1c0f8931afb198ff18f46b3bfe94a96710e833 (diff)
downloadbcm5719-llvm-e8bd0db6988187ecea5bf9b0b6ebb12e15c63345.tar.gz
bcm5719-llvm-e8bd0db6988187ecea5bf9b0b6ebb12e15c63345.zip
Allow use of private headers in different sub-modules.
llvm-svn: 252170
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
-rw-r--r--clang/lib/Lex/ModuleMap.cpp13
1 files changed, 3 insertions, 10 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp
index e1594eee368..c66bd70487f 100644
--- a/clang/lib/Lex/ModuleMap.cpp
+++ b/clang/lib/Lex/ModuleMap.cpp
@@ -231,11 +231,9 @@ static bool violatesPrivateInclude(Module *RequestingModule,
assert((!IsPrivateRole || IsPrivate) && "inconsistent headers and roles");
}
#endif
- return IsPrivateRole &&
- // FIXME: Should we map RequestingModule to its top-level module here
- // too? This check is redundant with the isSubModuleOf check in
- // diagnoseHeaderInclusion.
- RequestedModule->getTopLevelModule() != RequestingModule;
+ return IsPrivateRole && (!RequestingModule ||
+ RequestedModule->getTopLevelModule() !=
+ RequestingModule->getTopLevelModule());
}
static Module *getTopLevelOrNull(Module *M) {
@@ -261,11 +259,6 @@ void ModuleMap::diagnoseHeaderInclusion(Module *RequestingModule,
HeadersMap::iterator Known = findKnownHeader(File);
if (Known != Headers.end()) {
for (const KnownHeader &Header : Known->second) {
- // If 'File' is part of 'RequestingModule' we can definitely include it.
- if (Header.getModule() &&
- Header.getModule()->isSubModuleOf(RequestingModule))
- return;
-
// Remember private headers for later printing of a diagnostic.
if (violatesPrivateInclude(RequestingModule, File, Header.getRole(),
Header.getModule())) {
OpenPOWER on IntegriCloud