]> granicus.if.org Git - clang/commitdiff
Revert r109263.
authorDevang Patel <dpatel@apple.com>
Fri, 23 Jul 2010 23:04:28 +0000 (23:04 +0000)
committerDevang Patel <dpatel@apple.com>
Fri, 23 Jul 2010 23:04:28 +0000 (23:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109284 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp

index 7458fa3e6f2ac78e71ebd681ea8b75cd6e94f62b..753cdcddd28c3f78e17b893c3928f062ec6174bc 100644 (file)
@@ -188,25 +188,18 @@ void CGDebugInfo::CreateCompileUnit() {
   if (MainFileName.empty())
     MainFileName = "<unknown>";
 
+  llvm::sys::Path AbsFileName(MainFileName);
+  AbsFileName.makeAbsolute();
+
   // The main file name provided via the "-main-file-name" option contains just
   // the file name itself with no path information. This file name may have had
   // a relative path, so we look into the actual file entry for the main
   // file to determine the real absolute path for the file.
-  char *FileNamePtr = NULL;
-  if (const FileEntry *MainFile = SM.getFileEntryForID(SM.getMainFileID())) {
-    std::string MainFileDir;
+  std::string MainFileDir;
+  if (const FileEntry *MainFile = SM.getFileEntryForID(SM.getMainFileID()))
     MainFileDir = MainFile->getDir()->getName();
-    llvm::sys::Path AbsFileDirName(MainFileDir);
-    AbsFileDirName.makeAbsolute();
-    AbsFileDirName.appendComponent(MainFileName);
-    FileNamePtr = DebugInfoNames.Allocate<char>(AbsFileDirName.size());
-    memcpy(FileNamePtr, AbsFileDirName.c_str(), AbsFileDirName.size());
-  } else {
-    llvm::sys::Path AbsFileDirName(MainFileName);
-    AbsFileDirName.makeAbsolute();
-    FileNamePtr = DebugInfoNames.Allocate<char>(AbsFileDirName.size());
-    memcpy(FileNamePtr, AbsFileDirName.c_str(), AbsFileDirName.size());
-  }
+  else
+    MainFileDir = AbsFileName.getDirname();
 
   unsigned LangTag;
   const LangOptions &LO = CGM.getLangOptions();
@@ -236,7 +229,7 @@ void CGDebugInfo::CreateCompileUnit() {
 
   // Create new compile unit.
   TheCU = DebugFactory.CreateCompileUnit(
-    LangTag, FileNamePtr, llvm::StringRef(), Producer, true,
+    LangTag, AbsFileName.getLast(), MainFileDir, Producer, true,
     LO.Optimize, CGM.getCodeGenOpts().DwarfDebugFlags, RuntimeVers);
 }