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 >