aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-predcom.c9
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)