diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 784c57a9b75e..c49af15ca6ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-11-10 Richard Biener + + * tree-ssa-operands.c (finalize_ssa_uses): Properly put + released operands on the free list. + 2014-11-10 Richard Biener * match.pd: Implement pattern from simplify_mult. diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index d1d5a01cb581..2ff090ea9357 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -409,9 +409,10 @@ finalize_ssa_uses (struct function *fn, gimple stmt) /* If there is anything in the old list, free it. */ if (old_ops) { - for (ptr = old_ops; ptr; ptr = ptr->next) + for (ptr = old_ops; ptr->next; ptr = ptr->next) delink_imm_use (USE_OP_PTR (ptr)); - old_ops->next = gimple_ssa_operands (fn)->free_uses; + delink_imm_use (USE_OP_PTR (ptr)); + ptr->next = gimple_ssa_operands (fn)->free_uses; gimple_ssa_operands (fn)->free_uses = old_ops; }