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.