Commit b5d76df4 by Richard Guenther Committed by Richard Biener

tree-ssa-pre.c (phi_translate_1): Fix memory leak.

2008-09-10  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (phi_translate_1): Fix memory leak.

From-SVN: r140236
parent bfb0b886
2008-09-10 Richard Guenther <rguenther@suse.de> 2008-09-10 Richard Guenther <rguenther@suse.de>
* tree-ssa-pre.c (phi_translate_1): Fix memory leak.
2008-09-10 Richard Guenther <rguenther@suse.de>
PR middle-end/37432 PR middle-end/37432
* tree-inline.c (insert_init_stmt): Make sure to not * tree-inline.c (insert_init_stmt): Make sure to not
insert invalid gimple stores. insert invalid gimple stores.
......
...@@ -1504,11 +1504,11 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, ...@@ -1504,11 +1504,11 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
{ {
tree name = get_representative_for (opresult); tree name = get_representative_for (opresult);
if (!name) if (!name)
return NULL; break;
op0 = name; op0 = name;
} }
else if (!opresult) else if (!opresult)
return NULL; break;
} }
changed |= op0 != oldop0; changed |= op0 != oldop0;
...@@ -1522,11 +1522,11 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, ...@@ -1522,11 +1522,11 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
{ {
tree name = get_representative_for (opresult); tree name = get_representative_for (opresult);
if (!name) if (!name)
return NULL; break;
op1 = name; op1 = name;
} }
else if (!opresult) else if (!opresult)
return NULL; break;
} }
changed |= op1 != oldop1; changed |= op1 != oldop1;
if (op2 && TREE_CODE (op2) == SSA_NAME) if (op2 && TREE_CODE (op2) == SSA_NAME)
...@@ -1539,11 +1539,11 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, ...@@ -1539,11 +1539,11 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
{ {
tree name = get_representative_for (opresult); tree name = get_representative_for (opresult);
if (!name) if (!name)
return NULL; break;
op2 = name; op2 = name;
} }
else if (!opresult) else if (!opresult)
return NULL; break;
} }
changed |= op2 != oldop2; changed |= op2 != oldop2;
...@@ -1558,6 +1558,12 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, ...@@ -1558,6 +1558,12 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
newop.op2 = op2; newop.op2 = op2;
VEC_replace (vn_reference_op_s, newoperands, i, &newop); VEC_replace (vn_reference_op_s, newoperands, i, &newop);
} }
if (i != VEC_length (vn_reference_op_s, operands))
{
if (newoperands)
VEC_free (vn_reference_op_s, heap, newoperands);
return NULL;
}
newvuses = translate_vuses_through_block (vuses, phiblock, pred); newvuses = translate_vuses_through_block (vuses, phiblock, pred);
changed |= newvuses != vuses; changed |= newvuses != vuses;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment