aboutsummaryrefslogtreecommitdiff
path: root/gcc/coverage.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2020-09-25 10:53:26 +0200
committerMartin Liska <mliska@suse.cz>2020-10-02 12:10:03 +0200
commitf8dcbea5d2fb17dca3a7de97f15fc49997222365 (patch)
treeb1c3254a9d764c317920df4beef821a9fad3d5ec /gcc/coverage.c
parent2fe5a545e09edb4001bbfb74c571c806ebc7cb25 (diff)
downloadgcc-f8dcbea5d2fb17dca3a7de97f15fc49997222365.zip
gcc-f8dcbea5d2fb17dca3a7de97f15fc49997222365.tar.gz
gcc-f8dcbea5d2fb17dca3a7de97f15fc49997222365.tar.bz2
GCOV: do not mangle .gcno files.
gcc/ChangeLog: PR gcov-profile/97193 * coverage.c (coverage_init): GCDA note files should not be mangled and should end in output directory.
Diffstat (limited to 'gcc/coverage.c')
-rw-r--r--gcc/coverage.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/coverage.c b/gcc/coverage.c
index f353c9c..7711412 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -1206,6 +1206,8 @@ coverage_obj_finish (vec<constructor_elt, va_gc> *ctor)
void
coverage_init (const char *filename)
{
+ const char *original_filename = filename;
+ int original_len = strlen (original_filename);
#if HAVE_DOS_BASED_FILE_SYSTEM
const char *separator = "\\";
#else
@@ -1277,9 +1279,9 @@ coverage_init (const char *filename)
bbg_file_name = xstrdup (profile_note_location);
else
{
- bbg_file_name = XNEWVEC (char, len + strlen (GCOV_NOTE_SUFFIX) + 1);
- memcpy (bbg_file_name, filename, len);
- strcpy (bbg_file_name + len, GCOV_NOTE_SUFFIX);
+ bbg_file_name = XNEWVEC (char, original_len + strlen (GCOV_NOTE_SUFFIX) + 1);
+ memcpy (bbg_file_name, original_filename, original_len);
+ strcpy (bbg_file_name + original_len, GCOV_NOTE_SUFFIX);
}
if (!gcov_open (bbg_file_name, -1))