aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2019-11-06 20:36:22 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-11-06 19:36:22 +0000
commit5d24b4f2dad8883db004481ebd633a0bf8d4f8e9 (patch)
tree26254a0b9d22d2713949b92f16cd72737ebc5f0e /gcc
parent0c92c8627c1cbf7cbc76d065514a564dc8f044c0 (diff)
downloadgcc-5d24b4f2dad8883db004481ebd633a0bf8d4f8e9.zip
gcc-5d24b4f2dad8883db004481ebd633a0bf8d4f8e9.tar.gz
gcc-5d24b4f2dad8883db004481ebd633a0bf8d4f8e9.tar.bz2
ggc-common.c (ggc_prune_overhead_list): Do not delete surviving allocations.
* ggc-common.c (ggc_prune_overhead_list): Do not delete surviving allocations. * mem-stats.h (mem_alloc_description<T>::release_object_overhead): Do not silently ignore summary corruptions. From-SVN: r277890
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ggc-common.c8
-rw-r--r--gcc/mem-stats.h7
3 files changed, 13 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index daf1194..f451b1f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2019-11-06 Jan Hubicka <jh@suse.cz>
+
+ * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving
+ allocations.
+ * mem-stats.h (mem_alloc_description<T>::release_object_overhead):
+ Do not silently ignore summary corruptions.
+
2019-11-06 Richard Sandiford <richard.sandiford@arm.com>
* tree-vect-loop.c (vect_analyze_loop): Only try to vectorize
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index a7edb15..f94c39f 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -1003,10 +1003,10 @@ ggc_prune_overhead_list (void)
for (; it != ggc_mem_desc.m_reverse_object_map->end (); ++it)
if (!ggc_marked_p ((*it).first))
- (*it).second.first->m_collected += (*it).second.second;
-
- delete ggc_mem_desc.m_reverse_object_map;
- ggc_mem_desc.m_reverse_object_map = new map_t (13, false, false, false);
+ {
+ (*it).second.first->m_collected += (*it).second.second;
+ ggc_mem_desc.m_reverse_object_map->remove ((*it).first);
+ }
}
/* Return memory used by heap in kb, 0 if this info is not available. */
diff --git a/gcc/mem-stats.h b/gcc/mem-stats.h
index c2329c2..c80be76 100644
--- a/gcc/mem-stats.h
+++ b/gcc/mem-stats.h
@@ -535,11 +535,8 @@ inline void
mem_alloc_description<T>::release_object_overhead (void *ptr)
{
std::pair <T *, size_t> *entry = m_reverse_object_map->get (ptr);
- if (entry)
- {
- entry->first->release_overhead (entry->second);
- m_reverse_object_map->remove (ptr);
- }
+ entry->first->release_overhead (entry->second);
+ m_reverse_object_map->remove (ptr);
}
/* Unregister a memory allocation descriptor registered with