aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcov-driver.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-06-02 13:31:48 +0200
committerMartin Liska <mliska@suse.cz>2020-07-31 10:57:50 +0200
commitbc2b1a232b1825b421a1aaa21a0865b2d1e4e08c (patch)
treeca7bba49f12a55544ae9fa3ab9c44dfa5d9d0742 /libgcc/libgcov-driver.c
parent072a8b8fb6e861d8ac2db847bcc81dbcb1ef1b35 (diff)
downloadgcc-bc2b1a232b1825b421a1aaa21a0865b2d1e4e08c.zip
gcc-bc2b1a232b1825b421a1aaa21a0865b2d1e4e08c.tar.gz
gcc-bc2b1a232b1825b421a1aaa21a0865b2d1e4e08c.tar.bz2
libgcov: support overloaded malloc
gcc/ChangeLog: * gcov-io.h (GCOV_PREALLOCATED_KVP): New. libgcc/ChangeLog: * libgcov-driver.c: Add __gcov_kvp_pool and __gcov_kvp_pool_index variables. * libgcov.h (allocate_gcov_kvp): New. (gcov_topn_add_value): Use it. gcc/testsuite/ChangeLog: * gcc.dg/tree-prof/indir-call-prof-malloc.c: New test.
Diffstat (limited to 'libgcc/libgcov-driver.c')
-rw-r--r--libgcc/libgcov-driver.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libgcc/libgcov-driver.c b/libgcc/libgcov-driver.c
index 2590593..5891426 100644
--- a/libgcc/libgcov-driver.c
+++ b/libgcc/libgcov-driver.c
@@ -588,6 +588,12 @@ struct gcov_root __gcov_root;
struct gcov_master __gcov_master =
{GCOV_VERSION, 0};
+/* Pool of pre-allocated gcov_kvp strutures. */
+struct gcov_kvp __gcov_kvp_pool[GCOV_PREALLOCATED_KVP];
+
+/* Index to first free gcov_kvp in the pool. */
+unsigned __gcov_kvp_pool_index;
+
void
__gcov_exit (void)
{