[clang] Make PCH's respect any VFS specified. (PR #106577)

Jan Svoboda via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 12 08:46:09 PDT 2024


================
@@ -4772,6 +4772,23 @@ bool ASTWriter::PreparePathForOutput(SmallVectorImpl<char> &Path) {
     Changed = true;
   }
 
+  // If we are generating a normal PCH (EG. not a C++ module).
+  if (!WritingModule) {
+    // Use the vfs overlay if it exists to translate paths.
+    auto &FileSys =
+        Context->getSourceManager().getFileManager().getVirtualFileSystem();
+
+    if (auto *RFS = dyn_cast<llvm::vfs::RedirectingFileSystem>(&FileSys)) {
----------------
jansvoboda11 wrote:

`getRealPath()` gets very expensive if it ever hits the actual FS. Agreed that looking through the abstraction is not ideal.

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


More information about the cfe-commits mailing list