aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2014-11-19 20:17:44 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2014-11-19 20:17:44 +0000
commit89bd38d3c125b549ab099df5b69ff936463e25e6 (patch)
treef928d9b4b895bd85d245c6e24b4d590dbc1adf6d /gcc
parent3b56f890da7f68ff33cc2111d38d9a96f0840156 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/tree-ssa-threadedge.c1
-rw-r--r--gcc/tree-ssa-threadupdate.c1
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