On 04/22/14 03:25, Eric Botcazou wrote:
Sure, and thanks again for your help.
Thanks!
I was not able to find any difference on the generated code with
or without that patch.
Yes, my gut feeling is that TYPE_ALIGN_OK is really obsolete now. It is set
in a single place in the compiler (gcc-interface/decl.c:gnat_to_gnu_entity):
/* Tell the middle-end that objects of tagged types are guaranteed to
be properly aligned. This is necessary because conversions to the
class-wide type are translated into conversions to the root type,
which can be less aligned than some of its derived types. */
if (Is_Tagged_Type (gnat_entity)
|| Is_Class_Wide_Equivalent_Type (gnat_entity))
TYPE_ALIGN_OK (gnu_type) = 1;
but we changed the way these conversions are done some time ago.
So does this remove the last concern around Bernd's patch?
Jeff