* libgcov-interface.c (STRONG_ALIAS): New.
(__gcov_flush): Call __gcov_reset_int.
(__gcov_reset): Strong alias for ...
(__gcov_reset_ing): ... this renamed hidden version.
* libgcov.h (__gcov_reset_int): New declaration.
From-SVN: r214840
+2014-09-02 Nathan sidwell <nathan@acm.org>
+
+ * libgcov-interface.c (STRONG_ALIAS): New.
+ (__gcov_flush): Call __gcov_reset_int.
+ (__gcov_reset): Strong alias for ...
+ (__gcov_reset_ing): ... this renamed hidden version.
+ * libgcov.h (__gcov_reset_int): New declaration.
+
2014-08-19 Yaakov Selkowitz <yselkowi@redhat.com>
* config/i386/cygming-crtend.c (register_frame_ctor): Move atexit
#else
+
+/* Some functions we want to bind in this dynamic object, but have an
+ overridable global alias. */
+#define STRONG_ALIAS(src,dst) \
+ extern __typeof (src) dst __attribute__((alias (#src)))
+
extern __gthread_mutex_t __gcov_flush_mx ATTRIBUTE_HIDDEN;
extern __gthread_mutex_t __gcov_flush_mx ATTRIBUTE_HIDDEN;
__gthread_mutex_lock (&__gcov_flush_mx);
__gcov_dump_one (&__gcov_root);
- __gcov_reset ();
+ __gcov_reset_int ();
__gthread_mutex_unlock (&__gcov_flush_mx);
}
in order to collect profile in region of interest. */
void
-__gcov_reset (void)
+__gcov_reset_int (void)
{
gcov_clear (__gcov_root.list);
__gcov_root.dumped = 0;
}
+STRONG_ALIAS (__gcov_reset_int, __gcov_reset);
+
#endif /* L_gcov_reset */
#ifdef L_gcov_dump
/* Called before fork, to avoid double counting. */
extern void __gcov_flush (void) ATTRIBUTE_HIDDEN;
-/* Function to reset all counters to 0. */
+/* Function to reset all counters to 0. Both externally visible (and
+ overridable) and internal version. */
extern void __gcov_reset (void);
+extern void __gcov_reset_int (void) ATTRIBUTE_HIDDEN;
/* Function to enable early write of profile information so far. */
extern void __gcov_dump (void);