mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-25 17:35:54 +08:00
re PR tree-optimization/37432 (ICE in VN_INFO, at tree-ssa-sccvn.c:180)
2008-09-10 Richard Guenther <rguenther@suse.de> PR middle-end/37432 * tree-inline.c (insert_init_stmt): Make sure to not insert invalid gimple stores. * gcc.c-torture/compile/pr37432.c: New testcase. From-SVN: r140233
This commit is contained in:
parent
b70e977531
commit
bfb0b88634
@ -1,3 +1,9 @@
|
||||
2008-09-10 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/37432
|
||||
* tree-inline.c (insert_init_stmt): Make sure to not
|
||||
insert invalid gimple stores.
|
||||
|
||||
2008-09-10 Sebastian Pop <sebastian.pop@amd.com>
|
||||
|
||||
PR tree-optimization/37388
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-09-10 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/37432
|
||||
* gcc.c-torture/compile/pr37432.c: New testcase.
|
||||
|
||||
2008-09-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/37434:
|
||||
|
9
gcc/testsuite/gcc.c-torture/compile/pr37432.c
Normal file
9
gcc/testsuite/gcc.c-torture/compile/pr37432.c
Normal file
@ -0,0 +1,9 @@
|
||||
static void print_wkb_byte(unsigned char val) {
|
||||
print_wkb_bytes((unsigned char *)&val, 1, 1);
|
||||
}
|
||||
void InsertMultiPoint(int b) {
|
||||
char a = 1;
|
||||
if (b) a = 0;
|
||||
print_wkb_byte(a);
|
||||
}
|
||||
|
@ -1907,6 +1907,22 @@ insert_init_stmt (basic_block bb, gimple init_stmt)
|
||||
{
|
||||
gimple_stmt_iterator si = gsi_last_bb (bb);
|
||||
|
||||
/* We can end up with init statements that store to a non-register
|
||||
from a rhs with a conversion. Handle that here by forcing the
|
||||
rhs into a temporary. gimple_regimplify_operands is not
|
||||
prepared to do this for us. */
|
||||
if (!is_gimple_reg (gimple_assign_lhs (init_stmt))
|
||||
&& is_gimple_reg_type (TREE_TYPE (gimple_assign_lhs (init_stmt)))
|
||||
&& gimple_assign_rhs_class (init_stmt) == GIMPLE_UNARY_RHS)
|
||||
{
|
||||
tree rhs = build1 (gimple_assign_rhs_code (init_stmt),
|
||||
gimple_expr_type (init_stmt),
|
||||
gimple_assign_rhs1 (init_stmt));
|
||||
rhs = force_gimple_operand_gsi (&si, rhs, true, NULL_TREE, false,
|
||||
GSI_NEW_STMT);
|
||||
gimple_assign_set_rhs_code (init_stmt, TREE_CODE (rhs));
|
||||
gimple_assign_set_rhs1 (init_stmt, rhs);
|
||||
}
|
||||
gsi_insert_after (&si, init_stmt, GSI_NEW_STMT);
|
||||
gimple_regimplify_operands (init_stmt, &si);
|
||||
mark_symbols_for_renaming (init_stmt);
|
||||
|
Loading…
Reference in New Issue
Block a user