diff options
| -rw-r--r-- | clang/lib/Lex/ModuleMap.cpp | 17 | ||||
| -rw-r--r-- | clang/test/Modules/Inputs/DependsOnModule.framework/module.map | 4 | ||||
| -rw-r--r-- | clang/test/Modules/auto-module-import.c | 2 | 
3 files changed, 13 insertions, 10 deletions
diff --git a/clang/lib/Lex/ModuleMap.cpp b/clang/lib/Lex/ModuleMap.cpp index 5f3379bf965..581a5d5631d 100644 --- a/clang/lib/Lex/ModuleMap.cpp +++ b/clang/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/clang/test/Modules/Inputs/DependsOnModule.framework/module.map b/clang/test/Modules/Inputs/DependsOnModule.framework/module.map index d7712752854..6bf82b46d3d 100644 --- a/clang/test/Modules/Inputs/DependsOnModule.framework/module.map +++ b/clang/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/clang/test/Modules/auto-module-import.c b/clang/test/Modules/auto-module-import.c index 783b53d068d..4c71f06a841 100644 --- a/clang/test/Modules/auto-module-import.c +++ b/clang/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;  | 

