aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gcov.c15
2 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fa11207..bc3f2e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2018-08-27 Martin Liska <mliska@suse.cz>
+ PR gcov-profile/87069
+ * gcov.c (process_file): Record files already processed
+ and warn about a file being processed multiple times.
+
+2018-08-27 Martin Liska <mliska@suse.cz>
+
PR driver/83193
* config/aarch64/aarch64.c (aarch64_override_options_internal):
Set default values for x_aarch64_*_string strings.
diff --git a/gcc/gcov.c b/gcc/gcov.c
index 43dfc9a..ff4020c 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -408,6 +408,10 @@ static vector<source_info> sources;
/* Mapping of file names to sources */
static vector<name_map> names;
+/* Record all processed files in order to warn about
+ a file being read multiple times. */
+static vector<char *> processed_files;
+
/* This holds data summary information. */
static unsigned object_runs;
@@ -1146,6 +1150,17 @@ static void
process_file (const char *file_name)
{
create_file_names (file_name);
+
+ for (unsigned i = 0; i < processed_files.size (); i++)
+ if (strcmp (da_file_name, processed_files[i]) == 0)
+ {
+ fnotice (stderr, "'%s' file is already processed\n",
+ file_name);
+ return;
+ }
+
+ processed_files.push_back (xstrdup (da_file_name));
+
read_graph_file ();
read_count_file ();
}