================
@@ -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)) {
----------------
llvm-beanz wrote:

If instead of calling `cleanPathForOutput` above we call `getRealPath` on the 
vfs, does that solve this problem? I'm just a little wary about needing to look 
into the vfs implementation because in theory the abstraction shouldn't require 
us to look through it.

(cc @benlangmuir & @vsapsai who I believe have done work in this area)

https://github.com/llvm/llvm-project/pull/106577
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to