llvm-project/llvm/unittests/DebugInfo/DWARF
Pavel Labath 7bfa5d6544 dwarfgen: Add support for generating the debug_str_offsets section, take 3
Previous version of this patch failed on darwin targets because of
different handling of cross-debug-section relocations. This fixes the
tests to emit the DW_AT_str_offsets_base attribute correctly in both
cases. Since doing this is a non-trivial amount of code, and I'm going
to need it in more than one test, I've added a helper function to the
dwarfgen DIE class to do it.

Original commit message follows:

The motivation for this is D49493, where we'd like to test details of
debug_str_offsets behavior which is difficult to trigger from a
traditional test.

This adds the plubming necessary for dwarfgen to generate this section.
The more interesting changes are:
- I've moved emitStringOffsetsTableHeader function from DwarfFile to
  DwarfStringPool, so I can generate the section header more easily from
  the unit test.
- added a new addAttribute overload taking an MCExpr*. This is used to
  generate the DW_AT_str_offsets_base, which links a compile unit to the
  offset table.

I've also added a basic test for reading and writing DW_form_strx forms.

Reviewers: dblaikie, JDevlieghere, probinson

Subscribers: llvm-commits, aprantl

Differential Revision: https://reviews.llvm.org/D49670

llvm-svn: 338031
2018-07-26 14:36:07 +00:00
..
CMakeLists.txt Inline a few CMake variables into their only uses. 2018-05-14 19:23:31 +00:00
DWARFDebugInfoTest.cpp dwarfgen: Add support for generating the debug_str_offsets section, take 3 2018-07-26 14:36:07 +00:00
DWARFDebugLineTest.cpp [DWARF] Refactor callback usage for .debug_line error handling 2018-05-21 15:30:54 +00:00
DWARFFormValueTest.cpp DWARF: Unify form size handling code 2018-03-14 09:39:54 +00:00
DwarfGenerator.cpp dwarfgen: Add support for generating the debug_str_offsets section, take 3 2018-07-26 14:36:07 +00:00
DwarfGenerator.h dwarfgen: Add support for generating the debug_str_offsets section, take 3 2018-07-26 14:36:07 +00:00
DwarfUtils.cpp IWYU for llvm-config.h in llvm, additions. 2018-04-30 14:59:11 +00:00
DwarfUtils.h [DWARF] Don't attempt to parse line tables at invalid offsets 2018-03-08 10:53:34 +00:00