From 4ebcdc237376106b055412dfa71cbb0ca8c877e9 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 28 Apr 2017 14:50:08 +0200 Subject: [PATCH] Remove .gcno file when compilation does not success (PR driver/56469). 2017-04-28 Martin Liska 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 --- gcc/ChangeLog | 7 +++++++ gcc/coverage.c | 12 ++++++++++++ gcc/coverage.h | 1 + gcc/toplev.c | 3 +++ 4 files changed, 23 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8e21c35c979..2d94f6c827a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-04-28 Martin Liska + + 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 PR gcov-profile/80031 diff --git a/gcc/coverage.c b/gcc/coverage.c index 0a949c3a9f7..53e379b3295 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 cde6aef1d76..90454c0ecba 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 54a4f05c9a1..f1384fc2fda 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 (); -- 2.30.2