The following fixes a memory leak.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
Ready to be installed?
Thanks,
Martin
gcc/ChangeLog:
PR ipa/99003
* ipa-icf.c (sem_item::add_reference): Fix memory leak when
a reference exists.
---
gcc/ipa-icf.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 435f567d72e..687ad8d45b7 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -165,8 +165,11 @@ sem_item::add_reference (ref_map *refs,
unsigned index = reference_count++;
bool existed;
- vec<sem_item *> &v
- = refs->get_or_insert (new sem_usage_pair (target, index), &existed);
+ sem_usage_pair *pair = new sem_usage_pair (target, index);
+ vec<sem_item *> &v = refs->get_or_insert (pair, &existed);
+ if (existed)
+ delete pair;
+
v.safe_push (this);
bitmap_set_bit (target->usage_index_bitmap, index);
refs_set.add (target->node);
--
2.30.0