re PR tree-optimization/51246 (ICE in replace_ref_with, at tree-predcom.c:1309)
PR tree-optimization/51246 * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs. * gcc.c-torture/compile/pr51246.c: New test. From-SVN: r181884
This commit is contained in:
parent
0397b96547
commit
7e8b1c4bd8
4 changed files with 34 additions and 1 deletions
|
@ -1,5 +1,9 @@
|
|||
2011-12-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/51246
|
||||
* tree-predcom.c (replace_ref_with): Handle also clobber on the
|
||||
rhs.
|
||||
|
||||
PR rtl-optimization/51014
|
||||
* loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
|
||||
both from bb and orig_bb.
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
2011-12-01 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/51246
|
||||
* gcc.c-torture/compile/pr51246.c: New test.
|
||||
|
||||
PR rtl-optimization/51014
|
||||
* g++.dg/opt/pr51014.C: New test.
|
||||
|
||||
|
|
14
gcc/testsuite/gcc.c-torture/compile/pr51246.c
Normal file
14
gcc/testsuite/gcc.c-torture/compile/pr51246.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
/* PR tree-optimization/51246 */
|
||||
|
||||
int a, *b;
|
||||
|
||||
void
|
||||
test (void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
int c;
|
||||
a = c;
|
||||
b = &c;
|
||||
}
|
||||
}
|
|
@ -1306,8 +1306,20 @@ replace_ref_with (gimple stmt, tree new_tree, bool set, bool in_lhs)
|
|||
val = gimple_assign_lhs (stmt);
|
||||
if (TREE_CODE (val) != SSA_NAME)
|
||||
{
|
||||
gcc_assert (gimple_assign_copy_p (stmt));
|
||||
val = gimple_assign_rhs1 (stmt);
|
||||
gcc_assert (gimple_assign_single_p (stmt));
|
||||
if (TREE_CLOBBER_P (val))
|
||||
{
|
||||
val = gimple_default_def (cfun, SSA_NAME_VAR (new_tree));
|
||||
if (val == NULL_TREE)
|
||||
{
|
||||
val = make_ssa_name (SSA_NAME_VAR (new_tree),
|
||||
gimple_build_nop ());
|
||||
set_default_def (SSA_NAME_VAR (new_tree), val);
|
||||
}
|
||||
}
|
||||
else
|
||||
gcc_assert (gimple_assign_copy_p (stmt));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Add table
Reference in a new issue