aboutsummaryrefslogtreecommitdiff
path: root/gcc/coverage.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-11-19 09:16:17 +0100
committerMartin Liska <marxin@gcc.gnu.org>2018-11-19 08:16:17 +0000
commit390e529e2b98983de392b3d9b9b57c4a1258b080 (patch)
tree82e44c5460111671c6f34fa52668334ee91c8496 /gcc/coverage.c
parentca44d7f40afa39b40cfa2ac85521a65d1743ef7a (diff)
downloadgcc-390e529e2b98983de392b3d9b9b57c4a1258b080.zip
gcc-390e529e2b98983de392b3d9b9b57c4a1258b080.tar.gz
gcc-390e529e2b98983de392b3d9b9b57c4a1258b080.tar.bz2
Strenghten assumption about function start and end line (PR gcov-profile/88045).
2018-11-19 Martin Liska <mliska@suse.cz> PR gcov-profile/88045 * coverage.c (coverage_begin_function): Add assert. 2018-11-19 Martin Liska <mliska@suse.cz> PR gcov-profile/88045 * g++.dg/gcov/pr88045.C: New test. From-SVN: r266262
Diffstat (limited to 'gcc/coverage.c')
-rw-r--r--gcc/coverage.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 599a3bb..f0cbc1e 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -639,7 +639,9 @@ coverage_begin_function (unsigned lineno_checksum, unsigned cfg_checksum)
expanded_location endloc = expand_location (cfun->function_end_locus);
/* Function can start in a single file and end in another one. */
- gcov_write_unsigned (endloc.file == xloc.file ? endloc.line : xloc.line);
+ int end_line = endloc.file == xloc.file ? endloc.line : xloc.line;
+ gcc_assert (xloc.line <= end_line);
+ gcov_write_unsigned (end_line);
gcov_write_length (offset);
return !gcov_is_error ();