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.