On Mon, Oct 6, 2014 at 12:16 PM, Eric Botcazou <ebotca...@adacore.com> wrote:
> Hi,
>
> this is a regression from GCC 4.8.x: gnat1 (uintp.adb:UI_Lt) is miscompiled
> during a LTO boostrap when Init_Operand is inlined into it.  A store is
> wrongly deleted by GIMPLE DSE because of a missed aliasing relationship
> between 2 array types with TYPE_NONALIASED_COMPONENT set, one being a derived
> of the other in Ada, hence the latter being allowed to alias the former.
>
> Tested on x86_64-suse-linux, OK for the mainline and 4.9 branch?

Testcase?  I think it would be better to handle this in the canonical type
merging code in lto.c - or how does it end up working without LTO?  That is,
what does the Ada frontend do to make sure get_alias_set handles this
correctly?

Thanks,
Richard.

>
> 2014-10-06  Eric Botcazou  <ebotca...@adacore.com>
>
>         * gimple.c (gimple_get_alias_set): Return 0 for array types with non-
>         aliased component and that contain PLACEHOLDER_EXPRs.
>
>
> --
> Eric Botcazou

Reply via email to