]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgcov-interface.c (STRONG_ALIAS): New.
authorNathan Sidwell <nathan@acm.org>
Wed, 3 Sep 2014 00:43:00 +0000 (00:43 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Wed, 3 Sep 2014 00:43:00 +0000 (00:43 +0000)
* 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

libgcc/ChangeLog
libgcc/libgcov-interface.c
libgcc/libgcov.h

index c9f4e12dd492e9006a64b8eab417e5e0ce442df7..014febb291ac97ed8564b55af76a2af1f66cb405 100644 (file)
@@ -1,3 +1,11 @@
+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
index f73666c136729ebc58364313110ea6c2e26184d2..76d3f9731d7f8f58461dfc07a5bcd37dde2ff434 100644 (file)
@@ -42,6 +42,12 @@ void __gcov_dump (void) {}
 
 #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;
 
@@ -77,7 +83,7 @@ __gcov_flush (void)
   __gthread_mutex_lock (&__gcov_flush_mx);
 
   __gcov_dump_one (&__gcov_root);
-  __gcov_reset ();
+  __gcov_reset_int ();
 
   __gthread_mutex_unlock (&__gcov_flush_mx);
 }
@@ -121,12 +127,14 @@ gcov_clear (const struct gcov_info *list)
    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
index dfef181ce1a63d72603156f1b424550333a713fc..98a15d134a7adcaa2c0da09e7c4dd4ba474fd9b5 100644 (file)
@@ -225,8 +225,10 @@ extern void __gcov_init (struct gcov_info *) ATTRIBUTE_HIDDEN;
 /* 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);