[PATCH 11/21] PR jit/63854: Fix leak of avail within tree-ssa-pre.c
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
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