Issue 200709.1: DW_AT_rnglists_base in DW_TAG_skeleton_unit

Author: Simon Marchi
Champion: Simon Marchi
Date submitted: 2020-07-09
Date revised: 2021-10-18
Date closed: 2021-11-01
Type: Error
Status: Accepted
DWARF Version: 6
Section 3.1.2, pg 66-67

Background
----------

When using split DWARF (DW_TAG_skeleton_unit + .dwo), the intent is to
have DW_AT_rnglists_base in the skeleton unit and inherited by the split
full compulation unit.  In section 3.1.3, it is mentioned (in
non-normative text) that DW_AT_rnglists_base is inherited by the split
full compilation unit from the corresponding skeleton compilation unit.
However, section 3.1.2 doesn't mention DW_AT_rnglists_base in the list
of attributes a skeleton compilation unit can have.  The list of
acceptable attributes by tag (Appendix A) does mention
DW_AT_rnglists_base for DW_TAG_skeleton_unit though.

I believe this is just an oversight, where the list in section 3.1.2 is
missing DW_AT_rnglists_base.

Note that there is also issue 210310.1 ("Clarify DW_AT_rnglists_base and
DW_FORM_rnglistx in Split DWARF") [1] that is related to
DW_AT_rnglists_base in split-DWARF context, but I believe they don't
conflict.  If accepted, that issue would make it so the skeleton doesn't
inherit the DW_AT_rnglists_base value from the skeleton.  Instead, it
would refer to the .debug_rnglists.dwo section in the split file, hence
not need a DW_AT_rnglists_base value at all.  But the
DW_TAG_skeleton_unit in the main file may still need a
DW_AT_rnglists_base for its own use, which is what the present issue is
about.

[1] https://dwarfstd.org/issues/210310.1.html

Proposed changes
----------------

Section 3.1.2, page 67:

 - Add "8. A DW_AT_rnglists_base attribute." to the list of attributes a
   skeleton unit may have.

--
2021-10-18:  Updated.
2021-11-01:  Accepted (add to errata)