aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-06-29 16:03:36 +0200
committerMartin Liska <marxin@gcc.gnu.org>2018-06-29 14:03:36 +0000
commit1f2bb38a85710f650d1ea87f0765cb50e19c3212 (patch)
treea4cb15221ae4ad1a6c3e227f6bbb07e6328aa6fc /gcc/gcov.c
parent52057dc4ac5295caebf83147f688d769c93cbc8d (diff)
downloadgcc-1f2bb38a85710f650d1ea87f0765cb50e19c3212.zip
gcc-1f2bb38a85710f650d1ea87f0765cb50e19c3212.tar.gz
gcc-1f2bb38a85710f650d1ea87f0765cb50e19c3212.tar.bz2
When using -fprofile-generate=/some/path mangle absolute path of file (PR lto/85759).
2018-06-29 Martin Liska <mliska@suse.cz> PR lto/85759 * coverage.c (coverage_init): Mangle full path name. * doc/invoke.texi: Document the change. * gcov-io.c (mangle_path): New. * gcov-io.h (mangle_path): Likewise. * gcov.c (mangle_name): Use mangle_path for path mangling. From-SVN: r262251
Diffstat (limited to 'gcc/gcov.c')
-rw-r--r--gcc/gcov.c37
1 files changed, 1 insertions, 36 deletions
diff --git a/gcc/gcov.c b/gcc/gcov.c
index 2114a43..ad2de4d 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -2461,42 +2461,7 @@ mangle_name (char const *base, char *ptr)
ptr += len;
}
else
- {
- /* Convert '/' to '#', convert '..' to '^',
- convert ':' to '~' on DOS based file system. */
- const char *probe;
-
-#if HAVE_DOS_BASED_FILE_SYSTEM
- if (base[0] && base[1] == ':')
- {
- ptr[0] = base[0];
- ptr[1] = '~';
- ptr += 2;
- base += 2;
- }
-#endif
- for (; *base; base = probe)
- {
- size_t len;
-
- for (probe = base; *probe; probe++)
- if (*probe == '/')
- break;
- len = probe - base;
- if (len == 2 && base[0] == '.' && base[1] == '.')
- *ptr++ = '^';
- else
- {
- memcpy (ptr, base, len);
- ptr += len;
- }
- if (*probe)
- {
- *ptr++ = '#';
- probe++;
- }
- }
- }
+ ptr = mangle_path (base);
return ptr;
}