[PATCH] default_type_align: Use type_length_units
Simon Marchi
simon.marchi@polymtl.ca
Thu Jun 14 18:26:00 GMT 2018
On 2018-06-14 12:59, Tom Tromey wrote:
> This certainly is correct according to the comment in gdbtypes.h:
>
> /* * Return the alignment of the type in target addressable memory
> units.
>
> However, I was curious to know what DWARF specifies, to see whether
> dwarf2read was doing this as well. But DWARF seems pretty silent on
> this topic:
>
> A debugging information entry may have a DW_AT_alignment attribute
> whose value of class constant is a positive, non-zero, integer
> describing the alignment of the entity.
>
> So maybe this is depending on what your compiler does? I think I did
> not really consider this issue too deeply when writing the alignment
> support :(
From what I remember, nothing is well defined in DWARF regarding
non-8-bit-bytes. In the past, I have contributed fixes for such
architectures based on how things work with our (Ericsson) internal
compiler, and nobody complained so far. There is a BoF at Cauldron
though to talk about how to make the non-8-bit-bytes support more
"official" and testable [1], if you're interested!
Our compiler doesn't emit DW_AT_alignment AFAIK, so I don't know what it
would emit. But it would make sense if it was in addressable memory
units, just like type sizes.
> Another possible issue is that gdbtypes.c:type_align uses TYPE_LENGTH
> in
> one spot but I suppose it ought to use type_length_units if this patch
> goes in.
This use seems related to C++, and our compiler is C only, so I can't
test that. But it would make sense, I can include that change if you
prefer.
Simon
[1]
https://gcc.gnu.org/wiki/cauldron2018#Non-8-bit-byte_architecture_support_BoF
More information about the Gdb-patches
mailing list