aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2017-04-28 14:50:08 +0200
committerMartin Liska <marxin@gcc.gnu.org>2017-04-28 12:50:08 +0000
commit4ebcdc237376106b055412dfa71cbb0ca8c877e9 (patch)
tree8df55b02af0f17c07bd6ef1dbbf9dce00b19f573 /gcc
parent34769baf7d9d8e5545c478d85db3261c6dda3c89 (diff)
downloadgcc-4ebcdc237376106b055412dfa71cbb0ca8c877e9.zip
gcc-4ebcdc237376106b055412dfa71cbb0ca8c877e9.tar.gz
gcc-4ebcdc237376106b055412dfa71cbb0ca8c877e9.tar.bz2
Remove .gcno file when compilation does not success (PR driver/56469).
2017-04-28 Martin Liska <mliska@suse.cz> PR driver/56469 * coverage.c (coverage_remove_note_file): New function. * coverage.h: Declare the function. * toplev.c (finalize): Clean if an error has been seen. From-SVN: r247371
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/coverage.c12
-rw-r--r--gcc/coverage.h1
-rw-r--r--gcc/toplev.c3
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8e21c35..2d94f6c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2017-04-28 Martin Liska <mliska@suse.cz>
+ PR driver/56469
+ * coverage.c (coverage_remove_note_file): New function.
+ * coverage.h: Declare the function.
+ * toplev.c (finalize): Clean if an error has been seen.
+
+2017-04-28 Martin Liska <mliska@suse.cz>
+
PR gcov-profile/80031
* gcov-dump.c (tag_blocks): Just print number of basic blocks.
* gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 0a949c3..53e379b 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -731,6 +731,18 @@ coverage_end_function (unsigned lineno_checksum, unsigned cfg_checksum)
}
}
+/* Remove coverage file if opened. */
+
+void
+coverage_remove_note_file (void)
+{
+ if (bbg_file_name)
+ {
+ gcov_close ();
+ unlink (bbg_file_name);
+ }
+}
+
/* Build a coverage variable of TYPE for function FN_DECL. If COUNTER
>= 0 it is a counter array, otherwise it is the function structure. */
diff --git a/gcc/coverage.h b/gcc/coverage.h
index cde6aef..90454c0 100644
--- a/gcc/coverage.h
+++ b/gcc/coverage.h
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
extern void coverage_init (const char *);
extern void coverage_finish (void);
+extern void coverage_remove_note_file (void);
/* Start outputting coverage information for the current
function. */
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 54a4f05..f1384fc 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1915,6 +1915,9 @@ finalize (bool no_backend)
stack_usage_file = NULL;
}
+ if (seen_error ())
+ coverage_remove_note_file ();
+
if (!no_backend)
{
statistics_fini ();