re PR tree-optimization/55111 (ICE: tree check: expected ssa_name, have integer_cst in live_on_edge, at tree-vrp.c:89)

2012-10-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/55111
	* tree-ssa-pre.c (eliminate_insert): Properly fold the built
	stmt.

	* gcc.dg/torture/pr55111.c: New testcase.

From-SVN: r192984
This commit is contained in:
Richard Biener 2012-10-30 12:02:39 +00:00 committed by Richard Biener
parent 01850a764f
commit c96cab6e77
4 changed files with 37 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2012-10-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/55111
* tree-ssa-pre.c (eliminate_insert): Properly fold the built
stmt.
2012-10-30 Oleg Endo <olegendo@gcc.gnu.org>
PR target/54963

View file

@ -1,3 +1,8 @@
2012-10-30 Richard Biener <rguenther@suse.de>
PR tree-optimization/55111
* gcc.dg/torture/pr55111.c: New testcase.
2012-10-30 Oleg Endo <olegendo@gcc.gnu.org>
PR target/54988

View file

@ -0,0 +1,24 @@
/* { dg-do compile } */
int a, b, c;
long d;
unsigned long *e;
int f(void)
{
for(;; a++)
{
if(c)
{
for(b = d = 0; b < 1; b++)
e = &d;
--*e;
if(d > 0)
a = 0;
return d;
}
}
}

View file

@ -3996,8 +3996,8 @@ eliminate_insert (gimple_stmt_iterator *gsi, tree val)
tree res = make_temp_ssa_name (TREE_TYPE (val), NULL, "pretmp");
gimple tem = gimple_build_assign (res,
build1 (TREE_CODE (expr),
TREE_TYPE (expr), leader));
fold_build1 (TREE_CODE (expr),
TREE_TYPE (expr), leader));
gsi_insert_before (gsi, tem, GSI_SAME_STMT);
VN_INFO_GET (res)->valnum = val;