diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-predcom.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b82ce62..1ed540a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-11-10 Bin Cheng <bin.cheng@arm.com> + + * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing + reference of trivial component. + 2017-11-10 Jakub Jelinek <jakub@redhat.com> PR bootstrap/82916 diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c index fdb32f1..d078b96 100644 --- a/gcc/tree-predcom.c +++ b/gcc/tree-predcom.c @@ -1331,7 +1331,14 @@ determine_roots_comp (struct loop *loop, /* Trivial component. */ if (comp->refs.length () <= 1) - return; + { + if (comp->refs.length () == 1) + { + free (comp->refs[0]); + comp->refs.truncate (0); + } + return; + } comp->refs.qsort (order_drefs); FOR_EACH_VEC_ELT (comp->refs, i, a) |