[PATCH] Fill bitregion_{start,end} in store_constructor (PR, tree-optimization/78428).

Martin Liška mliska@suse.cz
Tue Dec 13 09:05:00 GMT 2016


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.
    
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5584 138bc75d-0d04-0410-961f-82ee72b054a4

May I install the patch?
Martin



More information about the Gcc-patches mailing list