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 } } */