https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82210

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think the bug is in the ARRAY_REF design, because at least in C one can have
arrays of over-aligned types the design choice that ARRAY_REF TREE_OPERAND (,
3)
is measured in multiplies of TYPE_ALIGN_UNIT of the element doesn't make sense,
because what you really get from array_ref_element_size in cases where the size
of element is not a multiple of the TYPE_ALIGN_UNIT is something that doesn't
have anything to do with the element size.
Is that some Ada specific stuff?
Similarly component_ref_field_offset multiplies by DECL_OFFSET_ALIGN,
supposedly in this case DECL_OFFSET_ALIGN of b shouldn't be 16 bytes, but
something smaller.

Reply via email to