http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46734

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2010.12.01 13:58:46
                 CC|                            |jamborm at gcc dot gnu.org
      Known to work|                            |4.4.5, 4.6.0
   Target Milestone|---                         |4.5.2
            Summary|ICE in create_tmp_var, at   |[4.5 Regression] ICE in
                   |gimplify.c:505              |create_tmp_var, at
                   |                            |gimplify.c:505
     Ever Confirmed|0                           |1
      Known to fail|                            |4.5.0, 4.5.1, 4.5.2

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-12-01 
13:58:46 UTC ---
Confirmed.

It's ipa-sra:

#9  0x0000000000ccdf3c in sra_ipa_modify_assign (stmt_ptr=0x7fffffffd6e8, 
    gsi=0x7fffffffd6f0, data=0x1e188e0)
    at /space/rguenther/src/svn/gcc-4_5-branch/gcc/tree-sra.c:3990
3990                                                   true, GSI_SAME_STMT);
(gdb) l
3985            new_rhs = *rhs_p;
3986
3987          if (new_rhs)
3988            {
3989              tree tmp = force_gimple_operand_gsi (gsi, new_rhs, true,
NULL_TREE,
3990                                                   true, GSI_SAME_STMT);
3991
3992              gimple_assign_set_rhs_from_tree (gsi, tmp);
3993            }
3994
(gdb) call debug_tree (new_rhs)
 <view_convert_expr 0x7ffff02b2600
    type <record_type 0x7fffef7fec78 vector_closure_type sizes-gimplified
addressable needs-constructing type_1 type_4 type_5 type_6 BLK
        size <integer_cst 0x7ffff7ed2988 constant 32>
        unit size <integer_cst 0x7ffff7ed2690 constant 4>
...
    arg 0 <indirect_ref 0x7ffff02b25a0
        type <reference_type 0x7fffef81ee70 type <record_type 0x7fffef81eb28
referred_type>
            sizes-gimplified unsigned type_6 SI size <integer_cst
0x7ffff7ed2988 32> unit size <integer_cst 0x7ffff7ed2690 4>
            align 32 symtab 0 alias set -1 canonical type 0x7ffff1bc2c78
            pointer_to_this <pointer_type 0x7fffed698d20>>

        arg 0 <parm_decl 0x7fffef2813b8 ISRA.934 type <pointer_type
0x7fffed698d20>
...

TYPE_NEEDS_CONSTRUCTING is set on new_rhs type which means gimplification
will fail to create a temporary.

Somehow fixed on the trunk.

Reply via email to