DWARF: Add .debug_addr table header for dwarf_version >= 5.
authorMark Wielaard <mark@klomp.org>
Sat, 28 Apr 2018 19:54:08 +0000 (19:54 +0000)
committerMark Wielaard <mark@gcc.gnu.org>
Sat, 28 Apr 2018 19:54:08 +0000 (19:54 +0000)
commit171b0a01bd9404f8298f4ea383dbe711a788dd8c
tree69f496434ddd94a5e56917bb3ac47e6a9d4699cc
parent6754dfa2370c9f28fc7069e872b9a0fcddece8ca
DWARF: Add .debug_addr table header for dwarf_version >= 5.

GNU DebugFission didn't add table headers for the .debug_addr
tables, but DWARF5 does. The table header makes it possible
for a DWARF consumer to parse the address tables without having
to index all .debug_info CUs first.

We can keep using the .debug_addr section label as is, because the
DW_AT_[GNU_]addr_base attribute points at the actual address index,
which starts right after the table header. So the label is generated
at the correct location whether the header is added first or not.

Add DW_AT_addr_base instead of DW_AT_GNU_addr_base to the skeleton
CU DIE for DWARF5.

gcc/ChangeLog

* dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for
dwarf_version >= 5.
(dwarf_AT): Handle DW_AT_addr_base.
(add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base.

From-SVN: r259743
gcc/ChangeLog
gcc/dwarf2out.c