bruno added a comment.

Hi Ben,


================
Comment at: lib/Basic/FileManager.cpp:221-223
@@ -220,2 +220,5 @@
   // See if there is already an entry in the map.
+  // FIXME: Note that when first requested, the returned file name equals to 
the
+  // requested path. This is not true when returning a cached result. This is
+  // inconsistent and might lead to clients making the wrong assumptions.
   if (NamedFileEnt.second)
----------------
benlangmuir wrote:
> The first time we lookup a file, we will return whatever name comes back from 
> the VFS, which may or may not be the requested path.  If this is a real file 
> system, it will be the requested path.  If it is a redirecting file system 
> and "use-external-names" is true (which it is by default), then the VFS will 
> return the external contents path, which is generally not the same as the 
> requested path.
The behaviour I'm seeing for VFS is a bit different: If it is a redirecting 
file system and "use-external-names" is true, then the FileManager returns the 
requested file path. Sub-sequential cached queries return the 
"use-external-names" / real-path instead. This is the rationale why I'm trying 
to thread the FileName instead of the FileEntry. Am I missing something?

================
Comment at: lib/Lex/HeaderSearch.cpp:493
@@ -492,3 +492,3 @@
     // Find the framework in which this header occurs.
-    StringRef FrameworkPath = FE->getDir()->getName();
+    StringRef FrameworkPath = llvm::sys::path::parent_path(FrameworkName);
     bool FoundFramework = false;
----------------
benlangmuir wrote:
> What does this change do?  FE->getDir()->getName() will be the virtual path 
> if there is VFS, which is usually the one you want to operate on.
You're right! I assumed FE->getDir()->getName() would give me the real path 
directory for the file in question, but I double checked here and that doesn't 
happen.


http://reviews.llvm.org/D18849



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to