@@ -360,9 +360,9 @@ void ModuleFileCache::remove(StringRef ModuleName) {
360
360
// / Collect the directly and indirectly required module names for \param
361
361
// / ModuleName in topological order. The \param ModuleName is guaranteed to
362
362
// / be the last element in \param ModuleNames.
363
- llvm::SmallVector<StringRef > getAllRequiredModules (ProjectModules &MDB,
363
+ llvm::SmallVector<std::string > getAllRequiredModules (ProjectModules &MDB,
364
364
StringRef ModuleName) {
365
- llvm::SmallVector<llvm::StringRef > ModuleNames;
365
+ llvm::SmallVector<std::string > ModuleNames;
366
366
llvm::StringSet<> ModuleNamesSet;
367
367
368
368
auto VisitDeps = [&](StringRef ModuleName, auto Visitor) -> void {
@@ -373,7 +373,7 @@ llvm::SmallVector<StringRef> getAllRequiredModules(ProjectModules &MDB,
373
373
if (ModuleNamesSet.insert (RequiredModuleName).second )
374
374
Visitor (RequiredModuleName, Visitor);
375
375
376
- ModuleNames.push_back (ModuleName);
376
+ ModuleNames.push_back (ModuleName. str () );
377
377
};
378
378
VisitDeps (ModuleName, VisitDeps);
379
379
@@ -418,28 +418,30 @@ llvm::Error ModulesBuilder::ModulesBuilderImpl::getOrBuildModuleFile(
418
418
// Get Required modules in topological order.
419
419
auto ReqModuleNames = getAllRequiredModules (MDB, ModuleName);
420
420
for (llvm::StringRef ReqModuleName : ReqModuleNames) {
421
- if (BuiltModuleFiles.isModuleUnitBuilt (ModuleName ))
421
+ if (BuiltModuleFiles.isModuleUnitBuilt (ReqModuleName ))
422
422
continue ;
423
423
424
424
if (auto Cached = Cache.getModule (ReqModuleName)) {
425
425
if (IsModuleFileUpToDate (Cached->getModuleFilePath (), BuiltModuleFiles,
426
426
TFS.view (std::nullopt))) {
427
- log (" Reusing module {0} from {1}" , ModuleName ,
427
+ log (" Reusing module {0} from {1}" , ReqModuleName ,
428
428
Cached->getModuleFilePath ());
429
429
BuiltModuleFiles.addModuleFile (std::move (Cached));
430
430
continue ;
431
431
}
432
432
Cache.remove (ReqModuleName);
433
433
}
434
434
435
+ std::string ReqFileName =
436
+ MDB.getSourceForModuleName (ReqModuleName);
435
437
llvm::Expected<ModuleFile> MF = buildModuleFile (
436
- ModuleName, ModuleUnitFileName , getCDB (), TFS, BuiltModuleFiles);
438
+ ReqModuleName, ReqFileName , getCDB (), TFS, BuiltModuleFiles);
437
439
if (llvm::Error Err = MF.takeError ())
438
440
return Err;
439
441
440
- log (" Built module {0} to {1}" , ModuleName , MF->getModuleFilePath ());
442
+ log (" Built module {0} to {1}" , ReqModuleName , MF->getModuleFilePath ());
441
443
auto BuiltModuleFile = std::make_shared<const ModuleFile>(std::move (*MF));
442
- Cache.add (ModuleName , BuiltModuleFile);
444
+ Cache.add (ReqModuleName , BuiltModuleFile);
443
445
BuiltModuleFiles.addModuleFile (std::move (BuiltModuleFile));
444
446
}
445
447
0 commit comments