diff mbox

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

Message ID 1416393981-39626-12-git-send-email-dmalcolm@redhat.com
State New
Headers show

Commit Message

David Malcolm Nov. 19, 2014, 10:46 a.m. UTC
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::reserve<pre_expr_d*>(vec<pre_expr_d*, va_heap, vl_embed>*&, unsigned int, bool) (vec.h:310)
   by 0x550D509: vec<pre_expr_d*, va_heap, vl_ptr>::reserve(unsigned int, bool) (vec.h:1428)
   by 0x550DA3E: vec<pre_expr_d*, va_heap, vl_ptr>::reserve_exact(unsigned int) (vec.h:1448)
   by 0x550D167: vec<pre_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(-)

Comments

Richard Biener Nov. 19, 2014, 11:46 a.m. UTC | #1
On Wed, Nov 19, 2014 at 11:46 AM, David Malcolm <dmalcolm@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::reserve<pre_expr_d*>(vec<pre_expr_d*, va_heap, vl_embed>*&, unsigned int, bool) (vec.h:310)
>    by 0x550D509: vec<pre_expr_d*, va_heap, vl_ptr>::reserve(unsigned int, bool) (vec.h:1428)
>    by 0x550DA3E: vec<pre_expr_d*, va_heap, vl_ptr>::reserve_exact(unsigned int) (vec.h:1448)
>    by 0x550D167: vec<pre_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;
>    vec<pre_expr> exprs;
>    pre_expr expr;
> -  vec<pre_expr> avail = vNULL;
> +  auto_vec<pre_expr> avail;
>    int i;
>
>    exprs = sorted_array_from_bitmap_set (ANTIC_IN (block));
> --
> 1.8.5.3
>
diff mbox

Patch

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;
   vec<pre_expr> exprs;
   pre_expr expr;
-  vec<pre_expr> avail = vNULL;
+  auto_vec<pre_expr> avail;
   int i;
 
   exprs = sorted_array_from_bitmap_set (ANTIC_IN (block));