From 9f47a24e79fbd0b73f65444c8c39d783e36f3a28 Mon Sep 17 00:00:00 2001 From: Martin Thuresson Date: Fri, 13 May 2011 15:57:20 +0000 Subject: [PATCH] re PR gcov-profile/47793 (Relative path in fprofile-use turns into absolute path) 2011-05-13 Martin Thuresson PR gcov-profile/47793 * libgcov.c (gcov_exit): Support relative profile paths. * doc/invoke.texi (-fprofile-dir): Update for above change. 2011-05-13 Martin Thuresson PR gcov-profile/47793 * gcc.dg/pr47793.c: New. From-SVN: r173735 --- gcc/ChangeLog | 7 +++++++ gcc/doc/invoke.texi | 2 +- gcc/libgcov.c | 5 +++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr47793.c | 12 ++++++++++++ 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/pr47793.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 004440cef48..b8ee6d38d8b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-13 Martin Thuresson + + PR gcov-profile/47793 + * libgcov.c (gcov_exit): Support relative profile paths. + * doc/invoke.texi (-fprofile-dir): Update for above change. + 2011-05-13 Richard Guenther * gimple.c (gimple_canonical_types_compatible_p): Do not use @@ -102,6 +108,7 @@ * configure.ac: Use AS_HELP_STRING throughout. * configure: Regenerate. +>>>>>>> .r173734 2011-05-12 H.J. Lu * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ddc34de38af..aee1e6b1fc3 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -7751,7 +7751,7 @@ Set the directory to search for the profile data files in to @var{path}. This option affects only the profile data generated by @option{-fprofile-generate}, @option{-ftest-coverage}, @option{-fprofile-arcs} and used by @option{-fprofile-use} and @option{-fbranch-probabilities} -and its related options. +and its related options. Both absolute and relative paths can be used. By default, GCC will use the current directory as @var{path}, thus the profile data file will appear in the same directory as the object file. diff --git a/gcc/libgcov.c b/gcc/libgcov.c index 7d1f6d05290..b39ef49343f 100644 --- a/gcc/libgcov.c +++ b/gcc/libgcov.c @@ -283,8 +283,9 @@ gcov_exit (void) } } /* Update complete filename with stripped original. */ - if (!IS_DIR_SEPARATOR (*fname) && !HAS_DRIVE_SPEC(fname)) - { + if (prefix_length != 0 && !IS_DIR_SEPARATOR (*fname)) + { + /* If prefix is given, add directory separator. */ strcpy (gi_filename_up, "/"); strcpy (gi_filename_up + 1, fname); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9c3552a8550..9340d919f58 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-05-13 Martin Thuresson + + PR gcov-profile/47793 + * gcc.dg/pr47793.c: New. + 2011-05-12 Jakub Jelinek PR tree-optimization/48975 diff --git a/gcc/testsuite/gcc.dg/pr47793.c b/gcc/testsuite/gcc.dg/pr47793.c new file mode 100644 index 00000000000..da6b6eab646 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr47793.c @@ -0,0 +1,12 @@ +/* Bug pr47793: Allow relative paths in profile-generate. */ +/* { dg-do run } */ +/* { dg-options "-O -fprofile-generate=./" } */ +/* { dg-final { scan-file pr47793.gcda "."} } */ + +int +main(void) +{ + return 0; +} + +/* { dg-final { cleanup-coverage-files } } */ -- 2.30.2