================ @@ -6067,14 +6062,21 @@ llvm::Error ASTReader::ReadSubmoduleBlock(ModuleFile &F, if (OptionalFileEntryRef CurFile = CurrentModule->getASTFile()) { // Don't emit module relocation error if we have -fno-validate-pch if (!bool(PP.getPreprocessorOpts().DisablePCHOrModuleValidation & - DisableValidationForModuleKind::Module) && - CurFile != F.File) { - auto ConflictError = - PartialDiagnostic(diag::err_module_file_conflict, - ContextObj->DiagAllocator) + DisableValidationForModuleKind::Module)) { + assert(CurFile != F.File && "ModuleManager did not de-duplicate"); + + Diag(diag::err_module_file_conflict) << CurrentModule->getTopLevelModuleName() << CurFile->getName() << F.File.getName(); - return DiagnosticError::create(CurrentImportLoc, ConflictError); + + auto CurModMapFile = + ModMap.getContainingModuleMapFile(CurrentModule); + auto ModMapFile = FileMgr.getOptionalFileRef(F.ModuleMapPath); + if (CurModMapFile && ModMapFile && CurModMapFile != ModMapFile) ---------------- cyndyishida wrote:
When do the file references return false in practice? If the file was deleted or something during the build? If so, so it may still be helpful to print out where the modulemap was expected to be (or where it was when the module was created) https://github.com/llvm/llvm-project/pull/134475 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits