[clang] [clang][modules] Minor improvements to diagnosing `out of date` errors (PR #136612)

Jan Svoboda via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 21 17:39:50 PDT 2025


================
@@ -3349,9 +3351,14 @@ ASTReader::ReadControlBlock(ModuleFile &F,
                                       .getModuleCache()
                                       .getInMemoryModuleCache()
                                       .isPCMFinal(F.FileName);
-      if (isDiagnosedResult(Result, Capabilities) || recompilingFinalized)
+      if (isDiagnosedResult(Result, Capabilities) || recompilingFinalized) {
         Diag(diag::note_module_file_imported_by)
             << F.FileName << !F.ModuleName.empty() << F.ModuleName;
+        if (UseFilemap && !F.ModuleName.empty() && !StoredFile.empty() &&
+            StoredFile != ImportedFile)
----------------
jansvoboda11 wrote:

Yes, I think string comparison will give false positives with symlinks involved, inconsistent path separators on Windows, etc.

https://github.com/llvm/llvm-project/pull/136612


More information about the cfe-commits mailing list