aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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