diff options
author | David Malcolm <dmalcolm@redhat.com> | 2014-11-19 20:17:44 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2014-11-19 20:17:44 +0000 |
commit | 89bd38d3c125b549ab099df5b69ff936463e25e6 (patch) | |
tree | f928d9b4b895bd85d245c6e24b4d590dbc1adf6d /gcc | |
parent | 3b56f890da7f68ff33cc2111d38d9a96f0840156 (diff) | |
download | gcc-89bd38d3c125b549ab099df5b69ff936463e25e6.zip gcc-89bd38d3c125b549ab099df5b69ff936463e25e6.tar.gz gcc-89bd38d3c125b549ab099df5b69ff936463e25e6.tar.bz2 |
PR jit/63854: Fix leak of paths within jump threading
gcc/ChangeLog:
PR jit/63854
* tree-ssa-threadedge.c (thread_across_edge): Don't just release
"path", delete it.
* tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
From-SVN: r217804
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 1 | ||||
-rw-r--r-- | gcc/tree-ssa-threadupdate.c | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9c9bd01..9cb1ebd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,13 @@ 2014-11-19 David Malcolm <dmalcolm@redhat.com> PR jit/63854 + * tree-ssa-threadedge.c (thread_across_edge): Don't just release + "path", delete it. + * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise. + +2014-11-19 David Malcolm <dmalcolm@redhat.com> + + PR jit/63854 * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from vec<> to auto_vec<> to fix a leak. diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 486940a..8b0b7b8 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -1150,6 +1150,7 @@ thread_across_edge (gcond *dummy_cond, through the vector entries. */ gcc_assert (path->length () == 0); path->release (); + delete path; /* A negative status indicates the target block was deemed too big to duplicate. Just quit now rather than trying to use the block as diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index 97748cb..ca0b8bf 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -2481,6 +2481,7 @@ delete_jump_thread_path (vec<jump_thread_edge *> *path) for (unsigned int i = 0; i < path->length (); i++) delete (*path)[i]; path->release(); + delete path; } /* Register a jump threading opportunity. We queue up all the jump |