From da9cd044552cb68f95a0beb2995b17119bb5e962 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Tue, 14 Feb 2017 15:54:55 +0100 Subject: [PATCH] Fix memory leak in tree-ssa-loop-unswitch.c 2017-02-14 Martin Liska * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body vector. Fix trailing white spaces. From-SVN: r245430 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-loop-unswitch.c | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2c18421..00aaebc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-02-14 Martin Liska + + * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body + vector. Fix trailing white spaces. + 2017-02-14 James Greenhalgh * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle diff --git a/gcc/tree-ssa-loop-unswitch.c b/gcc/tree-ssa-loop-unswitch.c index 143caf7..afa04e9 100644 --- a/gcc/tree-ssa-loop-unswitch.c +++ b/gcc/tree-ssa-loop-unswitch.c @@ -820,7 +820,7 @@ hoist_guard (struct loop *loop, edge guard) /* Create new loop pre-header. */ e = split_block (pre_header, last_stmt (pre_header)); if (dump_file && (dump_flags & TDF_DETAILS)) - fprintf (dump_file, " Moving guard %i->%i (prob %i) to bb %i, " + fprintf (dump_file, " Moving guard %i->%i (prob %i) to bb %i, " "new preheader is %i\n", guard->src->index, guard->dest->index, guard->probability, e->src->index, e->dest->index); @@ -879,7 +879,7 @@ hoist_guard (struct loop *loop, edge guard) /* ... finally scale everything in the loop except for guarded basic blocks where profile does not change. */ basic_block *body = get_loop_body (loop); - + if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, " Scaling nonguarded BBs in loop:"); for (unsigned int i = 0; i < loop->num_nodes; i++) @@ -920,6 +920,8 @@ hoist_guard (struct loop *loop, edge guard) if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, "\n guard hoisted.\n"); + + free (body); } /* Return true if phi argument for exit edge can be used -- 2.7.4