https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71893

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-07-15
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
I can reproduce it but get_or_alloc_expr_for must not fail (I see its
implementation can).

Ok, and I see it comes here via

#2  0x000000000102e258 in create_component_ref_by_pieces_1 (
    block=<basic_block 0x7ffff68ac680 (3)>, ref=0x1d15800, 
    operand=0x7fffffffd39c, stmts=0x7fffffffd5e0)
    at /space/rguenther/src/svn/trunk/gcc/tree-ssa-pre.c:2590
2590                    genop3 = find_or_generate_expression (block, genop3,
stmts);
(gdb) l
2585                  genop3 = NULL_TREE;
2586                else
2587                  {
2588                    genop3 = size_binop (EXACT_DIV_EXPR, genop3,
2589                                         size_int (TYPE_ALIGN_UNIT
(elmt_type)));
2590                    genop3 = find_or_generate_expression (block, genop3,
stmts);
2591                    if (!genop3)
2592                      return NULL_TREE;

We have

MEM[(character(kind=1)[2][1:D.904] *)_36][0]{lb: 0 sz: (sizetype) _3}

which has bitsizetype sz: but should have sizetype.  This is the
thing confusing stuff here I think.

This seems to be introduced during early FRE.

Reply via email to