From 89eb5dc65da7ce41d795277f8aa1503e6d82fe7b Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Fri, 14 Feb 2014 05:33:16 +0000 Subject: [PATCH] Revert "DebugInfo: Don't include the name of the CU file in the line table file list when it's unneeded" This reverts commit r201380 for now while we investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201389 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 3 +++ lib/MC/MCObjectStreamer.cpp | 3 +-- test/DebugInfo/X86/generate-odr-hash.ll | 8 -------- test/DebugInfo/empty.ll | 20 -------------------- 4 files changed, 4 insertions(+), 30 deletions(-) delete mode 100644 test/DebugInfo/empty.ll diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 4d0eb445d34..de2f4c6e02a 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -756,6 +756,9 @@ DwarfCompileUnit *DwarfDebug::constructDwarfCompileUnit(DICompileUnit DIUnit) { InfoHolder.addUnit(NewCU); FileIDCUMap[NewCU->getUniqueID()] = 0; + // Call this to emit a .file directive if it wasn't emitted for the source + // file this CU comes from yet. + getOrCreateSourceID(FN, CompilationDir, NewCU->getUniqueID()); NewCU->addString(Die, dwarf::DW_AT_producer, DIUnit.getProducer()); NewCU->addUInt(Die, dwarf::DW_AT_language, dwarf::DW_FORM_data2, diff --git a/lib/MC/MCObjectStreamer.cpp b/lib/MC/MCObjectStreamer.cpp index bfa3c8cfa34..f00231e3d31 100644 --- a/lib/MC/MCObjectStreamer.cpp +++ b/lib/MC/MCObjectStreamer.cpp @@ -379,8 +379,7 @@ void MCObjectStreamer::EmitZeros(uint64_t NumBytes) { void MCObjectStreamer::FinishImpl() { // Dump out the dwarf file & directory tables and line tables. const MCSymbol *LineSectionSymbol = NULL; - if (!getContext().getMCLineTableSymbols().empty() || - getContext().hasDwarfFiles()) + if (getContext().hasDwarfFiles()) LineSectionSymbol = MCDwarfFileTable::Emit(this); // If we are generating dwarf for assembly source files dump out the sections. diff --git a/test/DebugInfo/X86/generate-odr-hash.ll b/test/DebugInfo/X86/generate-odr-hash.ll index e7b62104dfb..6ddb54e5eef 100644 --- a/test/DebugInfo/X86/generate-odr-hash.ll +++ b/test/DebugInfo/X86/generate-odr-hash.ll @@ -125,14 +125,6 @@ ; CHECK: DW_TAG_member ; CHECK-NEXT: DW_AT_name{{.*}}"a" -; CHECK-LABEL: .debug_line contents: -; CHECK: Line table prologue -; CHECK-NOT: file_names[ -; CHECK: file_names{{.*}} bar.h -; CHECK: file_names{{.*}} bar.cpp -; CHECK-NOT: file_names[ -; CHECK-LABEL: .debug_str contents: - ; Use the unit size as a rough hash/identifier for the unit we're dealing with ; it happens to be unambiguous at the moment, but it's hardly ideal. ; CHECK-LABEL: .debug_pubtypes contents: diff --git a/test/DebugInfo/empty.ll b/test/DebugInfo/empty.ll deleted file mode 100644 index ce3a23d8aa6..00000000000 --- a/test/DebugInfo/empty.ll +++ /dev/null @@ -1,20 +0,0 @@ -; RUN: llc %s -o %t -filetype=obj -; RUN: llvm-dwarfdump -debug-dump=line %t | FileCheck %s - -; *-win32 doesn't emit Dwarf line table. -; XFAIL: win32 - -; Expect no line table entry since there are no functions and file references in this compile unit -; CHECK: .debug_line contents: -; CHECK: Line table prologue: -; CHECK: total_length: 0x00000019 -; CHECK-NOT: file_names[ - -!llvm.dbg.cu = !{!0} -!llvm.module.flags = !{!5} - -!0 = metadata !{i32 720913, metadata !4, i32 12, metadata !"clang version 3.1 (trunk 143523)", i1 true, metadata !"", i32 0, metadata !2, metadata !2, metadata !2, metadata !2, null, metadata !""} ; [ DW_TAG_compile_unit ] -!2 = metadata !{} -!3 = metadata !{i32 786473, metadata !4} ; [ DW_TAG_file_type ] -!4 = metadata !{metadata !"empty.c", metadata !"/home/nlewycky"} -!5 = metadata !{i32 1, metadata !"Debug Info Version", i32 1}