On 5/9/22 13:18, Pedro Alves via Dwarf-Discuss wrote:
An issue here is that DWARF does say this, in (DWARF 5, 5.7.6 Data Member 
Entries, page 119):

  "If the size of a data member is not the same as the size of the type given 
for the
   
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  data member, the data member has either a DW_AT_byte_size or a
  ^^^^^^^^^^^
  DW_AT_bit_size attribute whose integer constant value (see Section 2.19 on
  page 55) is the amount of storage needed to hold the value of the data 
member."

Note the part I underlined.  In Lancelot's case, the size of the data member
IS the same as the size of the type given for the data member.  So Clang could 
well pedantically
claim that they _are_ following the spec.  Shouldn't the spec be clarified here?

This then raises the question of whether a debugger can assume that the 
presence of a DW_AT_bit_size
attribute indicates that the field is a bit field at the C/C++ source level.  
GDB is assuming that
today, as there's really no other way to tell, but I don't think the spec 
explicitly says so.

DWARF tries to avoid having one piece of information with a clear description imply or suggest something else, with perhaps different implications for different people.

It seems to me that other languages (Ada?) have variables which do not fill the data type, so it would be reasonable for them to have a DW_AT_bit_size which is different from the data type size, yet not be a bit field.

As currently described, DW_AT_bit_size only describes the size of the data, nothing more, and only when that cannot be determined from the size of the base type. If you want to change the definition to say that it has an additional meaning (describing a bit field with a certain size), submit an issue. Alternately, Todd suggested a new flag to identify a bit field.

--
Michael Eager
_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to