re PR gcov-profile/47793 (Relative path in fprofile-use turns into absolute path)
authorMartin Thuresson <martinthuresson@gcc.gnu.org>
Fri, 13 May 2011 15:57:20 +0000 (15:57 +0000)
committerMartin Thuresson <martinthuresson@gcc.gnu.org>
Fri, 13 May 2011 15:57:20 +0000 (15:57 +0000)
2011-05-13  Martin Thuresson  <martint@google.com>

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  <martint@google.com>

PR gcov-profile/47793
* gcc.dg/pr47793.c: New.

From-SVN: r173735

gcc/ChangeLog
gcc/doc/invoke.texi
gcc/libgcov.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr47793.c [new file with mode: 0644]

index 004440cef4850389a5e6b37b289e53624525b10a..b8ee6d38d8b0ef486b34b5610bf47f9891087e3f 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-13  Martin Thuresson  <martint@google.com>
+
+       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  <rguenther@suse.de>
 
        * gimple.c (gimple_canonical_types_compatible_p): Do not use
        * configure.ac: Use AS_HELP_STRING throughout.
        * configure: Regenerate.
 
+>>>>>>> .r173734
 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
index ddc34de38af9dc17ae2597c381c85e9d80e289cb..aee1e6b1fc36a9c38e22e855ca24ed68d9ba3c1e 100644 (file)
@@ -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.
 
index 7d1f6d052900f96d251865f180f52738d8292e1a..b39ef49343f5c44283e19cfdb3dafd6936890781 100644 (file)
@@ -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);
        }
index 9c3552a85503eebc709524e694fe317827f39cc0..9340d919f58847e0c449b20e0f6751dce22c970a 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-13  Martin Thuresson  <martint@google.com>
+
+       PR gcov-profile/47793
+       * gcc.dg/pr47793.c: New.
+
 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/48975
diff --git a/gcc/testsuite/gcc.dg/pr47793.c b/gcc/testsuite/gcc.dg/pr47793.c
new file mode 100644 (file)
index 0000000..da6b6ea
--- /dev/null
@@ -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 } } */