diff options
-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 |