[PATCH] D50057: [MC] Report fatal error for DWARF types for non-ELF object files
Jonas Devlieghere via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 1 05:53:34 PDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rL338527: [MC] Report fatal error for DWARF types for non-ELF object files (authored by JDevlieghere, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D50057?vs=158230&id=158514#toc
Repository:
rL LLVM
https://reviews.llvm.org/D50057
Files:
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/trunk/lib/MC/MCObjectFileInfo.cpp
llvm/trunk/test/DebugInfo/X86/accel-tables-dwarf5.ll
llvm/trunk/test/DebugInfo/X86/accel-tables.ll
Index: llvm/trunk/test/DebugInfo/X86/accel-tables-dwarf5.ll
===================================================================
--- llvm/trunk/test/DebugInfo/X86/accel-tables-dwarf5.ll
+++ llvm/trunk/test/DebugInfo/X86/accel-tables-dwarf5.ll
@@ -15,8 +15,11 @@
; type units. Change this once DWARF v5 type units are implemented.
; RUN: llc -mtriple=x86_64-pc-linux -filetype=obj -generate-type-units -debugger-tune=lldb < %s \
; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=NONE %s
+
+; Debug types are ignored for non-ELF targets which means it shouldn't affect
+; accelerator table generation.
; RUN: llc -mtriple=x86_64-apple-darwin12 -generate-type-units -filetype=obj < %s \
-; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=NONE %s
+; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=DEBUG_NAMES %s
; NONE-NOT: apple_names
; NONE-NOT: debug_names
Index: llvm/trunk/test/DebugInfo/X86/accel-tables.ll
===================================================================
--- llvm/trunk/test/DebugInfo/X86/accel-tables.ll
+++ llvm/trunk/test/DebugInfo/X86/accel-tables.ll
@@ -12,12 +12,15 @@
; RUN: llc -mtriple=x86_64-pc-linux -filetype=obj -debugger-tune=lldb < %s \
; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=DEBUG_NAMES %s
-; Neither target has accelerator tables if type units are enabled, as DWARF v4
-; type units are not compatible with accelerator tables.
+; No accelerator tables if type units are enabled, as DWARF v4 type units are
+; not compatible with accelerator tables.
; RUN: llc -mtriple=x86_64-pc-linux -filetype=obj -generate-type-units -debugger-tune=lldb < %s \
; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=NONE %s
+
+; Debug types are ignored for non-ELF targets which means it shouldn't affect
+; accelerator table generation.
; RUN: llc -mtriple=x86_64-apple-darwin12 -generate-type-units -filetype=obj < %s \
-; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=NONE %s
+; RUN: | llvm-readobj -sections - | FileCheck --check-prefix=APPLE %s
; APPLE-NOT: debug_names
; APPLE: apple_names
Index: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
===================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -364,7 +364,9 @@
else
UseSectionsAsReferences = DwarfSectionsAsReferences == Enable;
- GenerateTypeUnits = GenerateDwarfTypeUnits;
+ // Don't generate type units for unsupported object file formats.
+ GenerateTypeUnits =
+ A->TM.getTargetTriple().isOSBinFormatELF() && GenerateDwarfTypeUnits;
TheAccelTableKind = computeAccelTableKind(
DwarfVersion, GenerateTypeUnits, DebuggerTuning, A->TM.getTargetTriple());
Index: llvm/trunk/lib/MC/MCObjectFileInfo.cpp
===================================================================
--- llvm/trunk/lib/MC/MCObjectFileInfo.cpp
+++ llvm/trunk/lib/MC/MCObjectFileInfo.cpp
@@ -950,8 +950,18 @@
}
MCSection *MCObjectFileInfo::getDwarfTypesSection(uint64_t Hash) const {
- return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP,
- 0, utostr(Hash));
+ switch (TT.getObjectFormat()) {
+ case Triple::ELF:
+ return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP,
+ 0, utostr(Hash));
+ case Triple::MachO:
+ case Triple::COFF:
+ case Triple::Wasm:
+ case Triple::UnknownObjectFormat:
+ report_fatal_error("Cannot get DWARF types section for this object file "
+ "format: not implemented.");
+ break;
+ }
}
MCSection *
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50057.158514.patch
Type: text/x-patch
Size: 3687 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180801/e08d8f9b/attachment.bin>
More information about the llvm-commits
mailing list