Issue 141215.4: Add DW_FORM_implicit_const form code

Author: Cary Coutant
Champion: Cary Coutant
Date submitted: 2014-12-15
Date revised:
Date closed:
Type: Enhancement
Status: Accepted
DWARF Version: 5
To allow the producer to represent certain enumeration-style
attributes as compactly as possible, we propose to add a new FORM
code, DW_FORM_implicit_const, that encodes a constant value
directly in the abbreviation declaration.

Proposed Changes to the Spec
----------------------------

In Section 7.5.3 ("Abbreviations Tables"), add the following
paragraph immediately following the paragraph beginning "Finally,
the child encoding is followed by a series of attribute
specifications":

    The attribute form DW_FORM_implicit_const is a special case.
    For attributes with this form, the attribute specification
    contains a third part, which is a signed LEB128 number. The
    value of this number is used as the value of the attribute,
    and no value is stored in the .debug_info section.

In Section 7.5.4 ("Attribute Encodings"), for class "constant",
change "seven forms" to "eight forms", and add to the end of the
paragraph:

    There is also a implicit constant (DW_FORM_implicit_const),
    whose value is provided as part of the abbreviation
    declaration.

Add the following row to Table 7.6 ("Attribute form encodings"):

    Form name               Value   Classes
    ---------               -----   -------
    DW_FORM_implicit_const  xxx     constant

--
2014/12/15 -- Replacement for 141003.1
2015/01/23 -- Accepted.