gcov.c (total_lines, [...]): New global vars.
authorNathan Sidwell <nathan@acm.org>
Fri, 30 Dec 2011 18:22:16 +0000 (18:22 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Fri, 30 Dec 2011 18:22:16 +0000 (18:22 +0000)
* gcov.c (total_lines, total_executed): New global vars.
(generate_results): Call executed_summary.
(executed_summary): New function, broken out of ...
(function_summary): ... here.  Call it.
* coverage.c (coverage_finish): Also check for local_tick == -1.
* gcov-dump (tag_function): Correct labelling typo.

From-SVN: r182744

gcc/ChangeLog
gcc/coverage.c
gcc/gcov-dump.c
gcc/gcov.c

index ce5276c122420334328eb48078c46da9a8321c6d..d4ee25a0b9f7043d91aef8c291be706336c2e531 100644 (file)
@@ -1,3 +1,12 @@
+2011-12-30  Nathan Sidwell  <nathan@acm.org>
+
+       * gcov.c (total_lines, total_executed): New global vars.
+       (generate_results): Call executed_summary.
+       (executed_summary): New function, broken out of ...
+       (function_summary): ... here.  Call it.
+       * coverage.c (coverage_finish): Also check for local_tick == -1.
+       * gcov-dump (tag_function): Correct labelling typo.
+
 2011-12-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        PR target/51623
index 58a76cafadd4274e991d51e6f972e1f948cbec5f..091e7e3e8c53f8f6d56d2411bb355cc41707857e 100644 (file)
@@ -1119,7 +1119,7 @@ coverage_finish (void)
   if (bbg_file_name && gcov_close ())
     unlink (bbg_file_name);
   
-  if (!local_tick)
+  if (!local_tick || local_tick == (unsigned)-1)
     /* Only remove the da file, if we cannot stamp it.  If we can
        stamp it, libgcov will DTRT.  */
     unlink (da_file_name);
index 4c2913b4d96509212f7615f8031c053a730509b4..da0aa59d1767dd8018fecd97997e80f45ae9a321 100644 (file)
@@ -286,7 +286,7 @@ tag_function (const char *filename ATTRIBUTE_UNUSED,
     {
       printf (" ident=%u", gcov_read_unsigned ());
       printf (", lineno_checksum=0x%08x", gcov_read_unsigned ());
-      printf (", cfg_checksum_checksum=0x%08x", gcov_read_unsigned ());
+      printf (", cfg_checksum=0x%08x", gcov_read_unsigned ());
 
       if (gcov_position () - pos < length)
        {
index d3cb4d095855d75e47e55c2613669b92409e3661..da9f85c780a31a191edf9fa019e2ccf5563fd979 100644 (file)
@@ -278,6 +278,9 @@ static unsigned a_names;    /* Allocated names */
 static unsigned object_runs;
 static unsigned program_count;
 
+static unsigned total_lines;
+static unsigned total_executed;
+
 /* Modification time of graph file.  */
 
 static time_t bbg_file_time;
@@ -380,6 +383,7 @@ static void solve_flow_graph (function_t *);
 static void find_exception_blocks (function_t *);
 static void add_branch_counts (coverage_t *, const arc_t *);
 static void add_line_counts (coverage_t *, function_t *);
+static void executed_summary (unsigned, unsigned);
 static void function_summary (const coverage_t *, const char *);
 static const char *format_gcov (gcov_type, gcov_type, int);
 static void accumulate_line_counts (source_t *);
@@ -702,6 +706,8 @@ generate_results (const char *file_name)
       
       accumulate_line_counts (src);
       function_summary (&src->coverage, "File");
+      total_lines += src->coverage.lines;
+      total_executed += src->coverage.lines_executed;
       if (flag_gcov_file && src->coverage.lines)
        {
          char *gcov_file_name
@@ -724,6 +730,9 @@ generate_results (const char *file_name)
        }
       fnotice (stdout, "\n");
     }
+
+  if (!file_name)
+    executed_summary (total_lines, total_executed);
 }
 
 /* Release a function structure */
@@ -1666,20 +1675,25 @@ format_gcov (gcov_type top, gcov_type bottom, int dp)
   return buffer;
 }
 
-
-/* Output summary info for a function.  */
+/* Summary of execution */
 
 static void
-function_summary (const coverage_t *coverage, const char *title)
+executed_summary (unsigned lines, unsigned executed)
 {
-  fnotice (stdout, "%s '%s'\n", title, coverage->name);
-
-  if (coverage->lines)
+  if (lines)
     fnotice (stdout, "Lines executed:%s of %d\n",
-            format_gcov (coverage->lines_executed, coverage->lines, 2),
-            coverage->lines);
+            format_gcov (executed, lines, 2), lines);
   else
     fnotice (stdout, "No executable lines\n");
+}
+  
+/* Output summary info for a function or file.  */
+
+static void
+function_summary (const coverage_t *coverage, const char *title)
+{
+  fnotice (stdout, "%s '%s'\n", title, coverage->name);
+  executed_summary (coverage->lines, coverage->lines_executed);
 
   if (flag_branches)
     {