@@ -655,8 +655,8 @@ ModuleMap::findOrCreateModuleForHeaderInUmbrellaDir(FileEntryRef File) {
655655 SmallString<32 > NameBuf;
656656 StringRef Name = sanitizeFilenameAsIdentifier (
657657 llvm::sys::path::stem (SkippedDir.getName ()), NameBuf);
658- Result =
659- findOrCreateModule (Name, Result, /* IsFramework= */ false , Explicit);
658+ Result = findOrCreateModuleFirst (Name, Result, /* IsFramework= */ false ,
659+ Explicit);
660660 setInferredModuleAllowedBy (Result, UmbrellaModuleMap);
661661
662662 // Associate the module and the directory.
@@ -672,8 +672,8 @@ ModuleMap::findOrCreateModuleForHeaderInUmbrellaDir(FileEntryRef File) {
672672 SmallString<32 > NameBuf;
673673 StringRef Name = sanitizeFilenameAsIdentifier (
674674 llvm::sys::path::stem (File.getName ()), NameBuf);
675- Result =
676- findOrCreateModule (Name, Result, /* IsFramework= */ false , Explicit);
675+ Result = findOrCreateModuleFirst (Name, Result, /* IsFramework= */ false ,
676+ Explicit);
677677 setInferredModuleAllowedBy (Result, UmbrellaModuleMap);
678678 Result->addTopHeader (File);
679679
@@ -857,14 +857,17 @@ Module *ModuleMap::lookupModuleQualified(StringRef Name, Module *Context) const{
857857 return Context->findSubmodule (Name);
858858}
859859
860- Module *ModuleMap::findOrCreateModule (StringRef Name, Module *Parent,
861- bool IsFramework, bool IsExplicit) {
860+ std::pair<Module *, bool > ModuleMap::findOrCreateModule (StringRef Name,
861+ Module *Parent,
862+ bool IsFramework,
863+ bool IsExplicit) {
862864 // Try to find an existing module with this name.
863865 if (Module *Sub = lookupModuleQualified (Name, Parent))
864- return Sub;
866+ return std::make_pair ( Sub, false ) ;
865867
866868 // Create a new module with this name.
867- return createModule (Name, Parent, IsFramework, IsExplicit);
869+ Module *M = createModule (Name, Parent, IsFramework, IsExplicit);
870+ return std::make_pair (M, true );
868871}
869872
870873Module *ModuleMap::createModule (StringRef Name, Module *Parent,
@@ -2129,8 +2132,8 @@ void ModuleMapParser::parseModuleDecl() {
21292132 ActiveModule =
21302133 Map.createShadowedModule (ModuleName, Framework, ShadowingModule);
21312134 } else {
2132- ActiveModule =
2133- Map. findOrCreateModule (ModuleName, ActiveModule, Framework, Explicit);
2135+ ActiveModule = Map. findOrCreateModuleFirst (ModuleName, ActiveModule,
2136+ Framework, Explicit);
21342137 }
21352138
21362139 ActiveModule->DefinitionLoc = ModuleNameLoc;
0 commit comments