diff options
author | Jakub Jelinek <jakub@redhat.com> | 2013-03-01 23:56:18 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2013-03-01 23:56:18 +0100 |
commit | 9d676bf6f1f2fbc00c0d961f3854c4caeee21672 (patch) | |
tree | dff561e6c187804d85b8319486e94c286cd22d41 /gcc/tree-ssa-loop-ivcanon.c | |
parent | caff7edf99996cbf552d1f76308f7fc103d51f47 (diff) | |
download | gcc-9d676bf6f1f2fbc00c0d961f3854c4caeee21672.zip gcc-9d676bf6f1f2fbc00c0d961f3854c4caeee21672.tar.gz gcc-9d676bf6f1f2fbc00c0d961f3854c4caeee21672.tar.bz2 |
re PR middle-end/56461 (GCC is leaking lots of memory)
PR middle-end/56461
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
vector even when returning true. Fix up function comment formatting.
From-SVN: r196398
Diffstat (limited to 'gcc/tree-ssa-loop-ivcanon.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivcanon.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index 910715a..4570807 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -207,7 +207,7 @@ constant_after_peeling (tree op, gimple stmt, struct loop *loop) EDGE_TO_CANCEL (if non-NULL) is an non-exit edge eliminated in the last iteration of loop. Return results in SIZE, estimate benefits for complete unrolling exiting by EXIT. - Stop estimating after UPPER_BOUND is met. Return true in this case */ + Stop estimating after UPPER_BOUND is met. Return true in this case. */ static bool tree_estimate_loop_size (struct loop *loop, edge exit, edge edge_to_cancel, struct loop_size *size, @@ -321,6 +321,7 @@ tree_estimate_loop_size (struct loop *loop, edge exit, edge edge_to_cancel, stru - size->last_iteration_eliminated_by_peeling) > upper_bound) { free (body); + path.release (); return true; } } |