||Slices of bit arrays
Section: 5.11 (Draft 8)
In using DWARF for the port of OpenVMS to Itanium, we discovered
that DWARF is unable to express slices of packed bit arrays. This
was needed to fully support our Pascal product. We solved this
problem by allowing the use of the DW_AT_stride_size attribute
as an alternative to the DW_AT_stride attribute on a subrange type
that defines a dimension of an array type. This seems like a
simple and appropriate extension to include in DWARF proper.
Replace the last non-italics paragraph of 5.11 with
"If the subrange type occurs as the description of a dimension
of an array type, and the stride for that dimension is different
than what would otherwise be determined, then the subrange type
has either a DW_AT_stride_size attribute or a DW_AT_stride |
attribute which specifies the separation between successive |
elements along the dimension as described in Section 2.18.
The value of DW_AT_stride_size is interpreted as bits and the |
value of DW_AT_stride is interpreted as bytes. |
Note that a separate proposal recommends renaming DW_AT_stride_size
to DW_AT_bit_stride and DW_AT_stride to DW_AT_byte_stride. If that
proposal is adopted then this proposal is amended accordingly.