[clang] [clang][modules] Cache failures for explicit modules (PR #215968)

via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 12 23:35:42 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Jan Svoboda (jansvoboda11)

<details>
<summary>Changes</summary>

Explicit module files are a (binary) input to the compilation. Just like any other input file they are expected to not change during compilation. There's no reason to disable failure caching in the `FileManager` for them.

---
Full diff: https://github.com/llvm/llvm-project/pull/215968.diff


1 Files Affected:

- (modified) clang/lib/Serialization/ModuleManager.cpp (+2-2) 


``````````diff
diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp
index 920cf07736407..cbb9de32f2b15 100644
--- a/clang/lib/Serialization/ModuleManager.cpp
+++ b/clang/lib/Serialization/ModuleManager.cpp
@@ -56,7 +56,7 @@ ModuleManager::makeKey(const ModuleFileName &Name) const {
       return ModuleFileKey(Buf);
   } else {
     if (auto ModuleFile = FileMgr.getOptionalFileRef(Name, /*OpenFile=*/true,
-                                                     /*CacheFailure=*/false,
+                                                     /*CacheFailure=*/true,
                                                      /*IsText=*/false))
       return ModuleFileKey(*ModuleFile);
   }
@@ -206,7 +206,7 @@ AddModuleResult ModuleManager::addModule(
           FileName == StringRef("-")
               ? FileMgr.getSTDIN()
               : FileMgr.getFileRef(FileName, /*OpenFile=*/true,
-                                   /*CacheFailure=*/false,
+                                   /*CacheFailure=*/true,
                                    /*IsText=*/false);
       if (!Entry)
         return Entry.takeError();

``````````

</details>


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


More information about the cfe-commits mailing list