|
DWARF Standard
|
221114.1 |
David Anderson |
DW_FORM_implicit_const and DW_FORM_indirect |
Error |
Open |
David Anderson |
DWARF5 Section 7.5.3, pg 207
BACKGROUND
DW_FORM_indirect and DW_FORM_implicit_const
are not described fully and this can lead to
the forms being unreasonable or unimplementable.
A simple clarification/generalization
resolves all the issues while keeping compatibility
with DWARF5 wording.
From the index:
DW_FORM_implicit_const, pages 9,209,214,221
DW_FORM_indirect, pages 207,220,288.
the descriptions are in section 7.5.3 page 207:
====DWARF 5 page 207 starting at line 6:
The attribute form DW_FORM_indirect is a special case. For
attributes with this form, the attribute value itself in
the .debug_info section begins with an unsigned LEB128
number that represents its form. This allows producers to
choose forms for particular attributes dynamically, without
having to add a new entry to the abbreviations table.
The attribute form DW_FORM_implicit_const is another
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.
===end quote of standard.
Add to the first paragraph:
A sequence of form DW_FORM_indirect in .debug_info
is allowed.
Revise the second paragraph to read:
The attribute form DW_FORM_implicit_const is another
special case. For attributes with this form, the attribute
specification contains a third part which
follows the DW_FORM_implicit_const unsigned
LEB128 and is a signed
LEB128 number. The value of this number is used as the
value of the attribute.
--
2022-11-21: Revised
Previous version: http://dwarfstd.org/issues/221114.1-1.html