[patch] Fix unaligned access in function returning composite type
Richard Biener
richard.guenther@gmail.com
Mon Oct 6 11:28:00 GMT 2014
On Mon, Oct 6, 2014 at 11:40 AM, Eric Botcazou <ebotcazou@adacore.com> wrote:
> Hi,
>
> In Ada, we support all sorts of data structure layout, including on strict-
> alignment targets, and the compiler must generate glue code if necessary.
> The problem here is a function returning a structure by invisible reference
> into a field which is not sufficient aligned because the enclosing object is
> packed: in this case, the caller passes an address that is not correctly
> aligned to the callee, which can result in an unaligned access in the callee.
>
> Tested on x86_64-suse-linux and SPARC/Solaris, OK for the mainline.
Ok.
Thanks,
Richard.
>
> 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
>
> * calls.c (expand_call): Do not use the target as the return slot if
> it is not sufficiently aligned.
>
>
> 2014-10-06 Eric Botcazou <ebotcazou@adacore.com>
>
> * gnat.dg/return4.adb: New test.
> * gnat.dg/return4_pkg.ad[sb]: New helper.
>
>
> --
> Eric Botcazou
More information about the Gcc-patches
mailing list