diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-ssa-operands.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 784c57a9b75..c49af15ca6b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2014-11-10 Richard Biener <rguenther@suse.de> + * tree-ssa-operands.c (finalize_ssa_uses): Properly put + released operands on the free list. + +2014-11-10 Richard Biener <rguenther@suse.de> + * match.pd: Implement pattern from simplify_mult. * tree-ssa-forwprop.c (simplify_mult): Remove. (pass_forwprop::execute): Do not call simplify_mult. diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index d1d5a01cb58..2ff090ea935 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; } |