aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNicolas Setton <setton@adacore.com>2010-08-05 15:21:13 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-08-05 15:21:13 +0000
commitacdb4da79df0681fca515696a59a6bd7ef18482a (patch)
tree1ad1f10e923a13456426b5003b7b599175983bd8 /gcc
parentd2c57fe97ecc24da4c947cd89623d54ba392c66c (diff)
downloadgcc-acdb4da79df0681fca515696a59a6bd7ef18482a.zip
gcc-acdb4da79df0681fca515696a59a6bd7ef18482a.tar.gz
gcc-acdb4da79df0681fca515696a59a6bd7ef18482a.tar.bz2
gcov.c (flag_display_progress): New static variable.
* gcov.c (flag_display_progress): New static variable. (main): Display progress info on standard output if requested. (options): Add -d/--display-progress. (print_usage): Print them. (process_args): Handle them. * doc/gcov.texi: Document them. From-SVN: r162916
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/doc/gcov.texi5
-rw-r--r--gcc/gcov.c22
3 files changed, 34 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1b5c8ad..4442404 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2010-08-05 Nicolas Setton <setton@adacore.com>
+
+ * gcov.c (flag_display_progress): New static variable.
+ (main): Display progress info on standard output if requested.
+ (options): Add -d/--display-progress.
+ (print_usage): Print them.
+ (process_args): Handle them.
+ * doc/gcov.texi: Document them.
+
2010-08-05 Martin Jambor <mjambor@suse.cz>
* ipa-cp.c (ipcp_discover_new_direct_edges): New function.
diff --git a/gcc/doc/gcov.texi b/gcc/doc/gcov.texi
index 74ada12..3f48f3b 100644
--- a/gcc/doc/gcov.texi
+++ b/gcc/doc/gcov.texi
@@ -130,6 +130,7 @@ gcov [@option{-v}|@option{--version}] [@option{-h}|@option{--help}]
[@option{-f}|@option{--function-summaries}]
[@option{-o}|@option{--object-directory} @var{directory|file}] @var{sourcefiles}
[@option{-u}|@option{--unconditional-branches}]
+ [@option{-d}|@option{--display-progress}]
@c man end
@c man begin SEEALSO
gpl(7), gfdl(7), fsf-funding(7), gcc(1) and the Info entry for @file{gcc}.
@@ -211,6 +212,10 @@ option is not supplied, it defaults to the current directory.
When branch probabilities are given, include those of unconditional branches.
Unconditional branches are normally not interesting.
+@item -d
+@itemx --display-progress
+Display the progress on the standard output.
+
@end table
@command{gcov} should be run with the current directory the same as that
diff --git a/gcc/gcov.c b/gcc/gcov.c
index 1c1403d..20d5fdf 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -297,6 +297,11 @@ static int flag_unconditional = 0;
static int flag_gcov_file = 1;
+/* Output progress indication if this is true. This is off by default
+ and can be turned on by the -d option. */
+
+static int flag_display_progress = 0;
+
/* For included files, make the gcov output file name include the name
of the input source file. For example, if x.h is included in a.c,
then the output file name is a.c##x.h.gcov instead of x.h.gcov. */
@@ -355,6 +360,7 @@ int
main (int argc, char **argv)
{
int argno;
+ int first_arg;
/* Unlock the stdio streams. */
unlock_std_streams ();
@@ -371,8 +377,15 @@ main (int argc, char **argv)
if (argc - argno > 1)
multiple_files = 1;
+ first_arg = argno;
+
for (; argno != argc; argno++)
- process_file (argv[argno]);
+ {
+ if (flag_display_progress)
+ printf("Processing file %d out of %d\n",
+ argno - first_arg + 1, argc - first_arg);
+ process_file (argv[argno]);
+ }
generate_results (multiple_files ? NULL : argv[argc - 1]);
@@ -415,6 +428,7 @@ print_usage (int error_p)
fnotice (file, " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n");
fnotice (file, " -p, --preserve-paths Preserve all pathname components\n");
fnotice (file, " -u, --unconditional-branches Show unconditional branch counts too\n");
+ fnotice (file, " -d, --display-progress Display progress information\n");
fnotice (file, "\nFor bug reporting instructions, please see:\n%s.\n",
bug_report_url);
exit (status);
@@ -449,6 +463,7 @@ static const struct option options[] =
{ "object-directory", required_argument, NULL, 'o' },
{ "object-file", required_argument, NULL, 'o' },
{ "unconditional-branches", no_argument, NULL, 'u' },
+ { "display-progress", no_argument, NULL, 'd' },
{ 0, 0, 0, 0 }
};
@@ -459,7 +474,7 @@ process_args (int argc, char **argv)
{
int opt;
- while ((opt = getopt_long (argc, argv, "abcfhlno:puv", options, NULL)) != -1)
+ while ((opt = getopt_long (argc, argv, "abcdfhlno:puv", options, NULL)) != -1)
{
switch (opt)
{
@@ -493,6 +508,9 @@ process_args (int argc, char **argv)
case 'u':
flag_unconditional = 1;
break;
+ case 'd':
+ flag_display_progress = 1;
+ break;
case 'v':
print_version ();
/* print_version will exit. */