diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2011-11-02 20:55:33 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2011-11-02 20:55:33 +0000 |
commit | d1ee7f8cf18ef2a96a3f7bea3db4db9402dbc0b9 (patch) | |
tree | 81892f4a491d5603b65c885d495107bcc35859e1 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
parent | 07216d174eeb07e0f72c1e3bcecb1a7931bac0d5 (diff) | |
download | bcm5719-llvm-d1ee7f8cf18ef2a96a3f7bea3db4db9402dbc0b9.tar.gz bcm5719-llvm-d1ee7f8cf18ef2a96a3f7bea3db4db9402dbc0b9.zip |
Don't emit a directory entry for the value in DW_AT_comp_dir, that is always
implied by directory index zero.
llvm-svn: 143570
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 1d5e05d8fda..0f4ea051a23 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -442,6 +442,10 @@ unsigned DwarfDebug::GetOrCreateSourceID(StringRef FileName, if (FileName.empty()) return GetOrCreateSourceID("<stdin>", StringRef()); + // TODO: this might not belong here. See if we can factor this better. + if (DirName == CompilationDir) + DirName = ""; + unsigned SrcId = SourceIdMap.size()+1; std::pair<std::string, std::string> SourceName = std::make_pair(FileName, DirName); @@ -466,8 +470,8 @@ unsigned DwarfDebug::GetOrCreateSourceID(StringRef FileName, CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) { DICompileUnit DIUnit(N); StringRef FN = DIUnit.getFilename(); - StringRef Dir = DIUnit.getDirectory(); - unsigned ID = GetOrCreateSourceID(FN, Dir); + CompilationDir = DIUnit.getDirectory(); + unsigned ID = GetOrCreateSourceID(FN, CompilationDir); DIE *Die = new DIE(dwarf::DW_TAG_compile_unit); CompileUnit *NewCU = new CompileUnit(ID, Die, Asm, this); @@ -486,8 +490,8 @@ CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) { else NewCU->addUInt(Die, dwarf::DW_AT_stmt_list, dwarf::DW_FORM_data4, 0); - if (!Dir.empty()) - NewCU->addString(Die, dwarf::DW_AT_comp_dir, Dir); + if (!CompilationDir.empty()) + NewCU->addString(Die, dwarf::DW_AT_comp_dir, CompilationDir); if (DIUnit.isOptimized()) NewCU->addUInt(Die, dwarf::DW_AT_APPLE_optimized, dwarf::DW_FORM_flag, 1); |