aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Lex/ModuleMap.cpp17
-rw-r--r--test/Modules/Inputs/DependsOnModule.framework/module.map4
-rw-r--r--test/Modules/auto-module-import.c2
3 files changed, 13 insertions, 10 deletions
diff --git a/lib/Lex/ModuleMap.cpp b/lib/Lex/ModuleMap.cpp
index 5f3379bf96..581a5d5631 100644
--- a/lib/Lex/ModuleMap.cpp
+++ b/lib/Lex/ModuleMap.cpp
@@ -900,16 +900,16 @@ void ModuleMapParser::parseInferredSubmoduleDecl(bool Explicit) {
}
// Inferred modules must have umbrella headers.
- if (!Failed && !ActiveModule->getTopLevelModule()->UmbrellaHeader) {
+ if (!Failed && !ActiveModule->UmbrellaHeader) {
Diags.Report(StarLoc, diag::err_mmap_inferred_no_umbrella);
Failed = true;
}
// Check for redefinition of an inferred module.
- if (!Failed && ActiveModule->getTopLevelModule()->InferSubmodules) {
+ if (!Failed && ActiveModule->InferSubmodules) {
Diags.Report(StarLoc, diag::err_mmap_inferred_redef);
- if (ActiveModule->getTopLevelModule()->InferredSubmoduleLoc.isValid())
- Diags.Report(ActiveModule->getTopLevelModule()->InferredSubmoduleLoc,
+ if (ActiveModule->InferredSubmoduleLoc.isValid())
+ Diags.Report(ActiveModule->InferredSubmoduleLoc,
diag::note_mmap_prev_definition);
Failed = true;
}
@@ -927,10 +927,9 @@ void ModuleMapParser::parseInferredSubmoduleDecl(bool Explicit) {
}
// Note that we have an inferred submodule.
- Module *TopModule = ActiveModule->getTopLevelModule();
- TopModule->InferSubmodules = true;
- TopModule->InferredSubmoduleLoc = StarLoc;
- TopModule->InferExplicitSubmodules = Explicit;
+ ActiveModule->InferSubmodules = true;
+ ActiveModule->InferredSubmoduleLoc = StarLoc;
+ ActiveModule->InferExplicitSubmodules = Explicit;
// Parse the opening brace.
if (!Tok.is(MMToken::LBrace)) {
@@ -952,7 +951,7 @@ void ModuleMapParser::parseInferredSubmoduleDecl(bool Explicit) {
case MMToken::ExportKeyword: {
consumeToken();
if (Tok.is(MMToken::Star))
- TopModule->InferExportWildcard = true;
+ ActiveModule->InferExportWildcard = true;
else
Diags.Report(Tok.getLocation(),
diag::err_mmap_expected_export_wildcard);
diff --git a/test/Modules/Inputs/DependsOnModule.framework/module.map b/test/Modules/Inputs/DependsOnModule.framework/module.map
index d771275285..6bf82b46d3 100644
--- a/test/Modules/Inputs/DependsOnModule.framework/module.map
+++ b/test/Modules/Inputs/DependsOnModule.framework/module.map
@@ -6,5 +6,9 @@ framework module DependsOnModule {
}
explicit framework module SubFramework {
umbrella "SubFramework.h"
+
+ module * {
+ export *
+ }
}
}
diff --git a/test/Modules/auto-module-import.c b/test/Modules/auto-module-import.c
index 783b53d068..4c71f06a84 100644
--- a/test/Modules/auto-module-import.c
+++ b/test/Modules/auto-module-import.c
@@ -24,7 +24,7 @@ void testSubframeworkOther() {
}
// Test header cross-subframework include pattern.
-#include <DependsOnModule/../Frameworks/SubFramework.framework/Headers/Other.h> // expected-warning{{treating #include as an import of module 'DependsOnModule.SubFramework'}}
+#include <DependsOnModule/../Frameworks/SubFramework.framework/Headers/Other.h> // expected-warning{{treating #include as an import of module 'DependsOnModule.SubFramework.Other'}}
void testSubframeworkOtherAgain() {
double *sfo1 = sub_framework_other;