aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcov.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-03-14 10:33:54 +0100
committerMartin Liska <marxin@gcc.gnu.org>2019-03-14 09:33:54 +0000
commitb81547179688b601af97fc2185489dbea1cd86b2 (patch)
tree3b014b7c0ae678b661a9596e5af81a9395664ec1 /gcc/gcov.c
parentea9d9d749c3203e9fb01267fabecad93b7f1c06c (diff)
downloadgcc-b81547179688b601af97fc2185489dbea1cd86b2.zip
gcc-b81547179688b601af97fc2185489dbea1cd86b2.tar.gz
gcc-b81547179688b601af97fc2185489dbea1cd86b2.tar.bz2
GCOV: print {start,end}_column in JSON file and gcov-dump tool.
2019-03-14 Martin Liska <mliska@suse.cz> * coverage.c (coverage_begin_function): Stream also end_column. * doc/gcov.texi: Document 2 new fields in JSON file. Improve documentation about function declaration location. * gcov-dump.c (tag_function): Print whole range of function declaration. * gcov.c (struct function_info): Add end_column field. (function_info::function_info): Initialize it. (output_json_intermediate_file): Output {start,end}_column fields. (read_graph_file): Read end_column. From-SVN: r269678
Diffstat (limited to 'gcc/gcov.c')
-rw-r--r--gcc/gcov.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/gcov.c b/gcc/gcov.c
index 37e787a..1d57655 100644
--- a/gcc/gcov.c
+++ b/gcc/gcov.c
@@ -283,6 +283,9 @@ struct function_info
/* Last line number. */
unsigned end_line;
+ /* Last line column. */
+ unsigned end_column;
+
/* Index of source file where the function is defined. */
unsigned src;
@@ -631,7 +634,8 @@ function_info::function_info (): m_name (NULL), m_demangled_name (NULL),
ident (0), lineno_checksum (0), cfg_checksum (0), has_catch (0),
artificial (0), is_group (0),
blocks (), blocks_executed (0), counts (),
- start_line (0), start_column (), end_line (0), src (0), lines (), next (NULL)
+ start_line (0), start_column (0), end_line (0), end_column (0),
+ src (0), lines (), next (NULL)
{
}
@@ -1131,7 +1135,9 @@ output_json_intermediate_file (json::array *json_files, source_info *src)
function->set ("demangled_name",
new json::string ((*it)->get_demangled_name ()));
function->set ("start_line", new json::number ((*it)->start_line));
+ function->set ("start_column", new json::number ((*it)->start_column));
function->set ("end_line", new json::number ((*it)->end_line));
+ function->set ("end_column", new json::number ((*it)->end_column));
function->set ("blocks",
new json::number ((*it)->get_block_count ()));
function->set ("blocks_executed",
@@ -1726,6 +1732,7 @@ read_graph_file (void)
unsigned start_line = gcov_read_unsigned ();
unsigned start_column = gcov_read_unsigned ();
unsigned end_line = gcov_read_unsigned ();
+ unsigned end_column = gcov_read_unsigned ();
fn = new function_info ();
functions.push_back (fn);
@@ -1739,6 +1746,7 @@ read_graph_file (void)
fn->start_line = start_line;
fn->start_column = start_column;
fn->end_line = end_line;
+ fn->end_column = end_column;
fn->artificial = artificial;
current_tag = tag;