Issue 131113.1: UTF-8 for new kinds of units

Author: Paul Robinson
Champion: Paul Robinson
Date submitted: 2013-11-13
Date revised:
Date closed:
Type: Improvement
Status: Accepted
DWARF Version: 5
Section 3.1.2,3.1.4,7.5.4, pg 51,53,161
Issue 120727.1 raised a clarification with respect to what strings the
DW_AT_use_UTF8 attribute applies to, when it is present in a compilation
unit entry.  We addressed that with some minor wording changes so we
basically don't imply it's just the .debug_info section.

However there are more kinds of units now than there used to be, and
an inconsistency has crept in.  In dwarf5.20131027.pdf, section 7.5.4,
p. 161 at the very end, we talk about the attribute in a "compilation,
partial or type unit entry."  But the attribute is not mentioned in
the description of type units; and, it should probably also be in the
skeleton unit entry, because that entry has string-valued attributes too.

Proposed edits (to dwarf5.20131027.pdf):

Section 3.1.2, Skeleton Compilation Unit Entries, p.51
Add a new entry to the numbered list:

8. A DW_AT_use_UTF8 attribute (the same as for regular compilation unit
   This attribute applies to strings referred to by the skeleton
   compilation unit entry itself, and strings in the associated line
   number information.
   The representation for strings in the DWARF object file is determined
   by the presence of a DW_AT_use_UTF8 attribute in the full compilation

Section 3.1.4, Separate Type Unit Entries, p,53
Add a new paragraph, after the paragraph describing DW_AT_stmt_list:

   A type unit entry may have a DW_AT_use_UTF8 attribute, which is a flag
   whose presence indicates that all strings referred to by this type
   unit entry, its children, and the skeleton line number table, are
   represented using the UTF-8 representation.

Section 7.5.4, Attribute Encodings, p.161, last paragraph
Add "skeleton" to the list.
(Unless we have a generic name for all the kinds of "units" we define.)

Appendix A, Table A.1, Attributes by Tag
Add DW_AT_use_UTF8 to the entry for DW_TAG_type_unit.