From ec17e433968e84be64522e6955e2f226fa01d295 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 13 Nov 2015 13:28:54 +0100 Subject: Fix memory leaks in graphite * graphite-poly.c (free_scop): Release scop->drs vector. * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region): Release dom vector. (try_generate_gimple_bb): Use vNULL as a default initialization for vectors. From-SVN: r230312 --- gcc/graphite-scop-detection.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'gcc/graphite-scop-detection.c') diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c index a7179d9..b5298d7 100644 --- a/gcc/graphite-scop-detection.c +++ b/gcc/graphite-scop-detection.c @@ -522,6 +522,11 @@ class scop_detection public: scop_detection () : scops (vNULL) {} + ~scop_detection () + { + scops.release (); + } + /* A marker for invalid sese_l. */ static sese_l invalid_sese; @@ -1065,13 +1070,20 @@ scop_detection::harmful_stmt_in_region (sese_l scop) const /* The basic block should not be part of an irreducible loop. */ if (bb->flags & BB_IRREDUCIBLE_LOOP) - return true; + { + dom.release (); + return true; + } if (harmful_stmt_in_bb (scop, bb)) - return true; + { + dom.release (); + return true; + } } - return false; + dom.release (); + return false; } /* Returns true if S1 subsumes/surrounds S2. */ @@ -1749,12 +1761,9 @@ graphite_find_cross_bb_scalar_vars (scop_p scop, gimple *stmt, static gimple_poly_bb_p try_generate_gimple_bb (scop_p scop, basic_block bb) { - vec drs; - drs.create (3); - vec writes; - writes.create (3); - vec reads; - reads.create (3); + vec drs = vNULL; + vec writes = vNULL; + vec reads = vNULL; sese_l region = scop->scop_info->region; loop_p nest = outermost_loop_in_sese (region, bb); -- cgit v1.1