On Tue, Dec 13, 2016 at 10:05 AM, Martin Liška <mli...@suse.cz> wrote:
> On 12/12/2016 12:10 PM, Eric Botcazou wrote:
>>> Ok. I'm sending a patch that put gcc_unreachable to places where either size
>>> or (and) offset is a non-constant. This survives regression tests
>>> (including ada) on x86_64-linux-gnu. Apart from that normal bootstrap +
>>> regression tests works fine on ppc64le-redhat-linux.
>>
>> I didn't manage to break it so it is OK by me.
>>
>
> Out of curiosity, I blame the commit which added the
>
> if (offset)
>   {
>     machine_mode address_mode;
>     rtx offset_rtx;
>
>     offset
>       = SUBSTITUTE_PLACEHOLDER_IN_EXPR (offset,
>                                         make_tree (TREE_TYPE (exp),
>                                                    target));
>
> and it comes to commit done in 1993:
>
> commit c869557a9ccc1bd3e5474b144bcb84065db23549
> Author: kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
> Date:   Mon Oct 4 01:48:03 1993 +0000
>
>     (store_expr): Use expr_size value, not size_int.
>     (store_constructor): Handle case of variable position and allow it to 
> contain
>     a PLACEHOLDER_EXPR.
>     (get_inner_reference): Make a WITH_RECORD_EXPR if required.
>     (expand_expr, case PLACEHOLDER_EXPR, WITH_RECORD_EXPR): New cases.
>     (expand_expr, case ARRAY_REF): Make WITH_RECORD_EXPR expressions when 
> needed.

Yeah, I expect that we got rid of the cases at the time we introduced
GIMPLE (and gimplification).

>
>     git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5584 
> 138bc75d-0d04-0410-961f-82ee72b054a4
>
> May I install the patch?

OK from my POV.

Thanks,
Richard.

> Martin
>

Reply via email to