@@ -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
@@ -866,14 +866,17 @@ Module *ModuleMap::lookupModuleQualified(StringRef Name, Module *Context) const{
866866 return Context->findSubmodule (Name);
867867}
868868
869- Module *ModuleMap::findOrCreateModule (StringRef Name, Module *Parent,
870- bool IsFramework, bool IsExplicit) {
869+ std::pair<Module *, bool > ModuleMap::findOrCreateModule (StringRef Name,
870+ Module *Parent,
871+ bool IsFramework,
872+ bool IsExplicit) {
871873 // Try to find an existing module with this name.
872874 if (Module *Sub = lookupModuleQualified (Name, Parent))
873- return Sub;
875+ return std::make_pair ( Sub, false ) ;
874876
875877 // Create a new module with this name.
876- return createModule (Name, Parent, IsFramework, IsExplicit);
878+ Module *M = createModule (Name, Parent, IsFramework, IsExplicit);
879+ return std::make_pair (M, true );
877880}
878881
879882Module *ModuleMap::createModule (StringRef Name, Module *Parent,
@@ -2140,8 +2143,8 @@ void ModuleMapParser::parseModuleDecl() {
21402143 ActiveModule =
21412144 Map.createShadowedModule (ModuleName, Framework, ShadowingModule);
21422145 } else {
2143- ActiveModule =
2144- Map. findOrCreateModule (ModuleName, ActiveModule, Framework, Explicit);
2146+ ActiveModule = Map. findOrCreateModuleFirst (ModuleName, ActiveModule,
2147+ Framework, Explicit);
21452148 }
21462149
21472150 ActiveModule->DefinitionLoc = ModuleNameLoc;
0 commit comments