changeset 718:72ee105be27b

Make sure debug info has correct file name and path.
author Christian Kamm <kamm incasoftware de>
date Wed, 22 Oct 2008 20:00:57 +0200
parents a26b0c5d5942
children 7261ff0f95ff
files gen/todebug.cpp
diffstat 1 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/gen/todebug.cpp	Wed Oct 22 17:06:17 2008 +0200
+++ b/gen/todebug.cpp	Wed Oct 22 20:00:57 2008 +0200
@@ -135,10 +135,13 @@
     vals[1] = DBG_CAST(getDwarfAnchor(DW_TAG_compile_unit));
 
     vals[2] = DtoConstUint(DW_LANG_C);// _D)); // doesn't seem to work
-    vals[3] = DtoConstStringPtr(m->srcfile->name->toChars(), "llvm.metadata");
+    vals[3] = DtoConstStringPtr(FileName::name(m->srcfile->name->toChars()), "llvm.metadata");
     std::string srcpath(FileName::path(m->srcfile->name->toChars()));
-    if (srcpath.empty())
-		srcpath = llvm::sys::Path::GetCurrentDirectory().toString();
+    if (!FileName::absolute(srcpath.c_str())) {
+        llvm::sys::Path tmp = llvm::sys::Path::GetCurrentDirectory();
+        tmp.appendComponent(srcpath);
+        srcpath = tmp.toString();
+    }
     vals[4] = DtoConstStringPtr(srcpath.c_str(), "llvm.metadata");
     vals[5] = DtoConstStringPtr("LDC (http://www.dsource.org/projects/ldc)", "llvm.metadata");