diff options
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.cpp')
-rw-r--r-- | lib/CodeGen/CGDebugInfo.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index 60aa4e784e..323c458842 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -104,9 +104,14 @@ llvm::DIFile CGDebugInfo::getOrCreateFile(SourceLocation Loc) { void CGDebugInfo::CreateCompileUnit() { // Get absolute path name. - std::string MainFileName = CGM.getCodeGenOpts().MainFileName; - if (MainFileName.empty()) + SourceManager &SM = CGM.getContext().getSourceManager(); + std::string MainFileName; + if (const FileEntry *MainFile = SM.getFileEntryForID(SM.getMainFileID())) + MainFileName = MainFile->getName(); + else if (CGM.getCodeGenOpts().MainFileName.empty()) MainFileName = "<unknown>"; + else + MainFileName = CGM.getCodeGenOpts().MainFileName; llvm::sys::Path AbsFileName(MainFileName); AbsFileName.makeAbsolute(); |