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

Neil Henning via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 12 10:11:17 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)) {
----------------
sheredom wrote:

So tried this, and there are problems. `getRealPath` requires that the remapped path already exists, and so will fail (returning the original path again) because the remapped location doesn't exist (because we are wanting to remap to some fake directory!).

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


More information about the cfe-commits mailing list