[cfe-commits] r45183 - /cfe/trunk/Basic/SourceManager.cpp

Ted Kremenek kremenek at apple.com
Tue Dec 18 14:12:26 PST 2007


Author: kremenek
Date: Tue Dec 18 16:12:19 2007
New Revision: 45183

URL: http://llvm.org/viewvc/llvm-project?rev=45183&view=rev
Log:
When serializing SourceManager, we now serialize out absolute paths
to serialized source files.

Modified:
    cfe/trunk/Basic/SourceManager.cpp

Modified: cfe/trunk/Basic/SourceManager.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Basic/SourceManager.cpp?rev=45183&r1=45182&r2=45183&view=diff

==============================================================================
--- cfe/trunk/Basic/SourceManager.cpp (original)
+++ cfe/trunk/Basic/SourceManager.cpp Tue Dec 18 16:12:19 2007
@@ -415,7 +415,19 @@
   S.FlushRecord();
   S.EmitPtr(this);
 
-  if (Entry) S.EmitCStr(Buffer->getBufferIdentifier());
+  if (Entry) {
+    llvm::sys::Path Fname(Buffer->getBufferIdentifier());
+
+    if (Fname.isAbsolute())
+      S.EmitCStr(Fname.c_str());
+    else {
+      // Create an absolute path.
+      // FIXME: This will potentially contain ".." and "." in the path.
+      llvm::sys::Path path = llvm::sys::Path::GetCurrentDirectory();
+      path.appendComponent(Fname.c_str());      
+      S.EmitCStr(path.c_str());
+    }
+  }
   else {
     const char* p = Buffer->getBufferStart();
     const char* e = Buffer->getBufferEnd();





More information about the cfe-commits mailing list