[PATCH 11/21] PR jit/63854: Fix leak of avail within tree-ssa-pre.c

2014-11-19 Thread David Malcolm
Fix this leak:

120 bytes in 5 blocks are definitely lost in loss record 141 of 227
   at 0x4A0645D: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x5D75D8F: xrealloc (xmalloc.c:177)
   by 0x550DEBA: void va_heap::reservepre_expr_d*(vecpre_expr_d*, va_heap, 
vl_embed*, unsigned int, bool) (vec.h:310)
   by 0x550D509: vecpre_expr_d*, va_heap, vl_ptr::reserve(unsigned int, bool) 
(vec.h:1428)
   by 0x550DA3E: vecpre_expr_d*, va_heap, vl_ptr::reserve_exact(unsigned int) 
(vec.h:1448)
   by 0x550D167: vecpre_expr_d*, va_heap, vl_ptr::safe_grow(unsigned int) 
(vec.h:1576)
   by 0x55076FE: do_regular_insertion(basic_block_def*, basic_block_def*) 
(tree-ssa-pre.c:3209)
   by 0x5508379: insert_aux(basic_block_def*) (tree-ssa-pre.c:3526)
   by 0x55083DC: insert_aux(basic_block_def*) (tree-ssa-pre.c:3536)
   by 0x55083DC: insert_aux(basic_block_def*) (tree-ssa-pre.c:3536)
   by 0x55084C0: insert() (tree-ssa-pre.c:3559)
   by 0x550C5BC: (anonymous namespace)::pass_pre::execute(function*) 
(tree-ssa-pre.c:4805)

gcc/ChangeLog:
PR jit/63854
* tree-ssa-pre.c (do_regular_insertion): Convert avail from
vec to auto_vec to fix a leak.
---
 gcc/tree-ssa-pre.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index ea99198..027dc1c 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3202,7 +3202,7 @@ do_regular_insertion (basic_block block, basic_block dom)
   bool new_stuff = false;
   vecpre_expr exprs;
   pre_expr expr;
-  vecpre_expr avail = vNULL;
+  auto_vecpre_expr avail;
   int i;
 
   exprs = sorted_array_from_bitmap_set (ANTIC_IN (block));
-- 
1.8.5.3



Re: [PATCH 11/21] PR jit/63854: Fix leak of avail within tree-ssa-pre.c

2014-11-19 Thread Richard Biener
On Wed, Nov 19, 2014 at 11:46 AM, David Malcolm dmalc...@redhat.com wrote:
 Fix this leak:

Ok.

Thanks,
Richard.

 120 bytes in 5 blocks are definitely lost in loss record 141 of 227
at 0x4A0645D: malloc (in 
 /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x5D75D8F: xrealloc (xmalloc.c:177)
by 0x550DEBA: void va_heap::reservepre_expr_d*(vecpre_expr_d*, va_heap, 
 vl_embed*, unsigned int, bool) (vec.h:310)
by 0x550D509: vecpre_expr_d*, va_heap, vl_ptr::reserve(unsigned int, 
 bool) (vec.h:1428)
by 0x550DA3E: vecpre_expr_d*, va_heap, vl_ptr::reserve_exact(unsigned 
 int) (vec.h:1448)
by 0x550D167: vecpre_expr_d*, va_heap, vl_ptr::safe_grow(unsigned int) 
 (vec.h:1576)
by 0x55076FE: do_regular_insertion(basic_block_def*, basic_block_def*) 
 (tree-ssa-pre.c:3209)
by 0x5508379: insert_aux(basic_block_def*) (tree-ssa-pre.c:3526)
by 0x55083DC: insert_aux(basic_block_def*) (tree-ssa-pre.c:3536)
by 0x55083DC: insert_aux(basic_block_def*) (tree-ssa-pre.c:3536)
by 0x55084C0: insert() (tree-ssa-pre.c:3559)
by 0x550C5BC: (anonymous namespace)::pass_pre::execute(function*) 
 (tree-ssa-pre.c:4805)

 gcc/ChangeLog:
 PR jit/63854
 * tree-ssa-pre.c (do_regular_insertion): Convert avail from
 vec to auto_vec to fix a leak.
 ---
  gcc/tree-ssa-pre.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
 index ea99198..027dc1c 100644
 --- a/gcc/tree-ssa-pre.c
 +++ b/gcc/tree-ssa-pre.c
 @@ -3202,7 +3202,7 @@ do_regular_insertion (basic_block block, basic_block 
 dom)
bool new_stuff = false;
vecpre_expr exprs;
pre_expr expr;
 -  vecpre_expr avail = vNULL;
 +  auto_vecpre_expr avail;
int i;

exprs = sorted_array_from_bitmap_set (ANTIC_IN (block));
 --
 1.8.5.3