summaryrefslogtreecommitdiff
path: root/libgcc/libgcov.h
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2014-09-17 20:13:17 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2014-09-17 20:13:17 +0000
commitbc587267bd85c2b30d8c0e8448ee6a5739271516 (patch)
treed63e4fa5645e26ab19e311988498d7daa883d937 /libgcc/libgcov.h
parent4e9d716449178cb0f04ac33efe1039debc2bb18f (diff)
downloadgcc-bc587267bd85c2b30d8c0e8448ee6a5739271516.tar.gz
* Makefile.in (LIBGCOV_INTERFACE): Add _gcov_dump from ...
(LIBGCOV_DRIVER): ... here. * libgcov-driver.c (gcov_master): New. (gcov_exit): Remove from master chain. (__gcov_init): Add to master chain if version compatible. Don't clear the version. * libgcov_interface (__gcov_flust): Call gcov_dump_int. (gcov_reset_int): Clear master chain, if compatible. (gcov_dump_int): New internal interface. Dump master chain, if compatible. (gcov_dump): Alias for gcov_dump_int. * libgcov.h (struct gcov_root): Add next and prev fields. (struct gcov_master): New struct. (__gcov_master): New. (gcov_dump_int): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215337 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc/libgcov.h')
-rw-r--r--libgcc/libgcov.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h
index 98a15d134a7..3816b6a7090 100644
--- a/libgcc/libgcov.h
+++ b/libgcc/libgcov.h
@@ -212,10 +212,21 @@ struct gcov_root
struct gcov_info *list;
unsigned dumped : 1; /* counts have been dumped. */
unsigned run_counted : 1; /* run has been accounted for. */
+ struct gcov_root *next;
+ struct gcov_root *prev;
};
extern struct gcov_root __gcov_root ATTRIBUTE_HIDDEN;
+struct gcov_master
+{
+ gcov_unsigned_t version;
+ struct gcov_root *root;
+};
+
+/* Exactly one of these will be active in the process. */
+extern struct gcov_master __gcov_master;
+
/* Dump a set of gcov objects. */
extern void __gcov_dump_one (struct gcov_root *) ATTRIBUTE_HIDDEN;
@@ -230,8 +241,9 @@ extern void __gcov_flush (void) ATTRIBUTE_HIDDEN;
extern void __gcov_reset (void);
extern void __gcov_reset_int (void) ATTRIBUTE_HIDDEN;
-/* Function to enable early write of profile information so far. */
+/* User function to enable early write of profile information so far. */
extern void __gcov_dump (void);
+extern void __gcov_dump_int (void) ATTRIBUTE_HIDDEN;
/* The merge function that just sums the counters. */
extern void __gcov_merge_add (gcov_type *, unsigned) ATTRIBUTE_HIDDEN;