[modules] Extend r266113 to cope with submodules.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266116 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Smith 2016-04-12 20:20:33 +00:00
parent b3419a9ef1
commit 47bc7ec72e
2 changed files with 4 additions and 2 deletions

View File

@ -1678,7 +1678,9 @@ void Preprocessor::HandleIncludeDirective(SourceLocation HashLoc,
// FIXME: Remove this; loadModule does the same check (but produces
// slightly worse diagnostics).
if (!SuggestedModule.getModule()->isAvailable() &&
!SuggestedModule.getModule()->HasIncompatibleModuleFile) {
!SuggestedModule.getModule()
->getTopLevelModule()
->HasIncompatibleModuleFile) {
clang::Module::Requirement Requirement;
clang::Module::UnresolvedHeaderDirective MissingHeader;
Module *M = SuggestedModule.getModule();

View File

@ -3,7 +3,7 @@
// RUN: echo 'extern int a; template<typename T> int a2 = T::error;' > %t/a.h
// RUN: echo 'extern int b;' > %t/b.h
// RUN: echo 'extern int c = 0;' > %t/c.h
// RUN: echo 'module a { header "a.h" header "b.h" header "c.h" }' > %t/modulemap
// RUN: echo 'module a { module aa { header "a.h" header "b.h" header "c.h" } }' > %t/modulemap
// RUN: echo 'module other {}' > %t/other.modulemap
// We lazily check that the files referenced by an explicitly-specified .pcm