[Dwarf-Discuss] DW_FORM_data1 and DW_AT_const_value
Mon Jul 26 23:38:33 GMT 2010
Michael Eager wrote:
>> There is a distinction between "ambiguous" and "unspecified".
>> The interpretation of the value of DW_FORM_data is unspecified.
>> I don't believe that there is any ambiguity.
If gcc simply avoided using a DW_FORM_data<n> that was unspecified-meaning
the problem would go away. For the value 204, DW_FORM_data2 (and
some other FORMs) would do fine
without treading unspecified waters.
When the data<n> is an offset (as in DWARF3 data4, data8) then it
clearly is 'unsigned'.
If a data type is 'char', and char is 8 bits,
and a data object's DW_AT_const_value has form DW_FORM_data1
there is no ambiguity at all.
DW_TAG_subrange gives reason to think that if the basis type and the
DW_FORM_data<n> are the same size that the DW_AT_upper (and lower)
bounds would use the signedness of the basis type to 'extend' the bits
if one is expanding the value to a larger integer.
So not all uses of DW_FORM_data<n> have any value ambiguity.
But some uses of data<n> stray into unspecified waters.
More information about the Dwarf-discuss