This second patch cleans up some more global names. the three functions should
not be visible to the user. I'm not sure if they're attempting to export an
interface to the user but they're (a) undocumented and (b) don't follow existing
gcov naming.
I'm a little confused as to why the gcov library was split into libgcov-driver
and libgcov-interface, as each subsection's protected by an appropriate
L_<SYMBOL> #ifdef, this appears to serve no purpose.
I have another cleanup coming, and then I'll consider David's patch -- I can see
how to do what it wants without adding another interface (hurrah!)
nathan
2014-07-24 Nathan Sidwell <nat...@acm.org>
* libgcov-driver.c (set_gcov_dump_complete,
reset_gcov_dump_complete, get_gcov_dump_complete): Remove global
functions polluting user's namespace.
(gcov_exit): Set variable directly.
(gcov_clear): Reset variable directly.
* libgcov-interface.c (get_gcov_dymp_complete,
reset_gov_dump_complete): Remove declarations.
(__gcov_reset, __gcov_dump): Don't call them.
Index: libgcc/libgcov-driver.c
===================================================================
--- libgcc/libgcov-driver.c (revision 212942)
+++ libgcc/libgcov-driver.c (working copy)
@@ -51,9 +51,6 @@ static int gcov_error (const char *, ...
/* The following functions can be called from outside of this file. */
extern void gcov_clear (void) ATTRIBUTE_HIDDEN;
extern void gcov_exit (void) ATTRIBUTE_HIDDEN;
-extern void set_gcov_dump_complete (void) ATTRIBUTE_HIDDEN;
-extern void reset_gcov_dump_complete (void) ATTRIBUTE_HIDDEN;
-extern int get_gcov_dump_complete (void) ATTRIBUTE_HIDDEN;
struct gcov_fn_buffer
{
@@ -86,32 +83,6 @@ size_t gcov_max_filename = 0;
/* Flag when the profile has already been dumped via __gcov_dump(). */
static int gcov_dump_complete;
-/* A global function that get the vaule of gcov_dump_complete. */
-
-int
-get_gcov_dump_complete (void)
-{
- return gcov_dump_complete;
-}
-
-/* A global functino that set the vaule of gcov_dump_complete. Will
- be used in __gcov_dump() in libgcov-interface.c. */
-
-void
-set_gcov_dump_complete (void)
-{
- gcov_dump_complete = 1;
-}
-
-/* A global functino that set the vaule of gcov_dump_complete. Will
- be used in __gcov_reset() in libgcov-interface.c. */
-
-void
-reset_gcov_dump_complete (void)
-{
- gcov_dump_complete = 0;
-}
-
static struct gcov_fn_buffer *
free_fn_data (const struct gcov_info *gi_ptr, struct gcov_fn_buffer *buffer,
unsigned limit)
@@ -795,6 +766,8 @@ gcov_exit (void)
if (gcov_dump_complete)
return;
+ gcov_dump_complete = 1;
+
crc32 = gcov_exit_compute_summary (&this_prg);
allocate_filename_struct (&gf);
@@ -818,6 +791,7 @@ gcov_clear (void)
{
const struct gcov_info *gi_ptr;
+ gcov_dump_complete = 0;
for (gi_ptr = gcov_list; gi_ptr; gi_ptr = gi_ptr->next)
{
unsigned f_ix;
Index: libgcc/libgcov-interface.c
===================================================================
--- libgcc/libgcov-interface.c (revision 212942)
+++ libgcc/libgcov-interface.c (working copy)
@@ -44,8 +44,6 @@ void __gcov_dump (void) {}
extern void gcov_clear (void) ATTRIBUTE_HIDDEN;
extern void gcov_exit (void) ATTRIBUTE_HIDDEN;
-extern void set_gcov_dump_complete (void) ATTRIBUTE_HIDDEN;
-extern void reset_gcov_dump_complete (void) ATTRIBUTE_HIDDEN;
#ifdef L_gcov_flush
@@ -95,9 +93,6 @@ void
__gcov_reset (void)
{
gcov_clear ();
- /* Re-enable dumping to support collecting profile in multiple regions
- of interest. */
- reset_gcov_dump_complete ();
}
#endif /* L_gcov_reset */
@@ -111,8 +106,6 @@ void
__gcov_dump (void)
{
gcov_exit ();
- /* Prevent profile from being dumped a second time on application exit. */
- set_gcov_dump_complete ();
}
#endif /* L_gcov_dump */