+2018-05-18 Martin Liska <mliska@suse.cz>
+
+ PR gcov-profile/84846
+ * coverage.c (coverage_init): Write PWD to .gcno file.
+ * doc/gcov.texi: Document how working directory is printed.
+ * gcov-dump.c (dump_gcov_file): Print PWD.
+ * gcov.c (output_intermediate_file): Likewise.
+ (read_graph_file): Read PWD string.
+ (output_lines): Print PWD.
+
2018-05-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR middle-end/85817
gcov_write_unsigned (GCOV_NOTE_MAGIC);
gcov_write_unsigned (GCOV_VERSION);
gcov_write_unsigned (bbg_file_stamp);
+ gcov_write_string (getpwd ());
/* Do not support has_unexecuted_blocks for Ada. */
gcov_write_unsigned (strcmp (lang_hooks.name, "GNU Ada") != 0);
@smallexample
version:@var{gcc_version}
+cwd:@var{working_directory}
file:@var{source_file_name}
function:@var{start_line_number},@var{end_line_number},@var{execution_count},@var{function_name}
lcount:@var{line number},@var{execution_count},@var{has_unexecuted_block}
@smallexample
version: 8.1.0 20180103
+cwd:/home/gcc/testcase
file:tmp.cpp
function:7,7,0,_ZN3FooIcEC2Ev
function:7,7,1,_ZN3FooIiEC2Ev
@smallexample
-: 0:Source:tmp.cpp
+ -: 0:Working directory:/home/gcc/testcase
-: 0:Graph:tmp.gcno
-: 0:Data:tmp.gcda
-: 0:Runs:1
@smallexample
-: 0:Source:tmp.cpp
+ -: 0:Working directory:/home/gcc/testcase
-: 0:Graph:tmp.gcno
-: 0:Data:tmp.gcda
-: 0:Runs:1
@smallexample
-: 0:Source:tmp.cpp
+ -: 0:Working directory:/home/gcc/testcase
-: 0:Graph:tmp.gcno
-: 0:Data:tmp.gcda
-: 0:Runs:1
if (!is_data_type)
{
+ printf ("%s:cwd: %s\n", filename, gcov_read_string ());
+
/* Support for unexecuted basic blocks. */
unsigned support_unexecuted_blocks = gcov_read_unsigned ();
if (!support_unexecuted_blocks)
/* Supports has_unexecuted_blocks functionality. */
static unsigned bbg_supports_has_unexecuted_blocks;
+/* Working directory in which a TU was compiled. */
+static const char *bbg_cwd;
+
/* Name and file pointer of the input file for the count data (gcda). */
static char *da_file_name;
{
fprintf (gcov_file, "version:%s\n", version_string);
fprintf (gcov_file, "file:%s\n", src->name); /* source file name */
+ fprintf (gcov_file, "cwd:%s\n", bbg_cwd);
std::sort (src->functions.begin (), src->functions.end (),
function_line_start_cmp ());
bbg_file_name, v, e);
}
bbg_stamp = gcov_read_unsigned ();
+ bbg_cwd = xstrdup (gcov_read_string ());
bbg_supports_has_unexecuted_blocks = gcov_read_unsigned ();
function_info *fn = NULL;
const char *retval;
fprintf (gcov_file, DEFAULT_LINE_START "Source:%s\n", src->coverage.name);
+ fprintf (gcov_file, DEFAULT_LINE_START "Working directory:%s\n",
+ bbg_cwd);
if (!multiple_files)
{
fprintf (gcov_file, DEFAULT_LINE_START "Graph:%s\n", bbg_file_name);