mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-23 01:40:32 +08:00
Make groups more generic (PR gcov-profile/84548).
2018-02-27 Martin Liska <mliska@suse.cz> PR gcov-profile/84548 * gcov.c (process_file): Allow partial overlap and consider it also as group functions. (output_lines): Properly calculate range of lines for a group. 2018-02-27 Martin Liska <mliska@suse.cz> PR gcov-profile/84548 * g++.dg/gcov/pr84548.C: New test. From-SVN: r258033
This commit is contained in:
parent
23c3a05908
commit
e59b5e24ea
@ -1,3 +1,10 @@
|
||||
2018-02-27 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR gcov-profile/84548
|
||||
* gcov.c (process_file): Allow partial overlap and consider it
|
||||
also as group functions.
|
||||
(output_lines): Properly calculate range of lines for a group.
|
||||
|
||||
2018-02-27 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and
|
||||
|
10
gcc/gcov.c
10
gcc/gcov.c
@ -1151,7 +1151,6 @@ process_file (const char *file_name)
|
||||
function_info **slot = fn_map.get (needle);
|
||||
if (slot)
|
||||
{
|
||||
gcc_assert ((*slot)->end_line == (*it)->end_line);
|
||||
(*slot)->is_group = 1;
|
||||
(*it)->is_group = 1;
|
||||
}
|
||||
@ -2957,7 +2956,14 @@ output_lines (FILE *gcov_file, const source_info *src)
|
||||
{
|
||||
fns = src->get_functions_at_location (line_num);
|
||||
if (fns.size () > 1)
|
||||
line_start_group = fns[0]->end_line;
|
||||
{
|
||||
/* It's possible to have functions that partially overlap,
|
||||
thus take the maximum end_line of functions starting
|
||||
at LINE_NUM. */
|
||||
for (unsigned i = 0; i < fns.size (); i++)
|
||||
if (fns[i]->end_line > line_start_group)
|
||||
line_start_group = fns[i]->end_line;
|
||||
}
|
||||
else if (fns.size () == 1)
|
||||
{
|
||||
function_info *fn = fns[0];
|
||||
|
@ -1,3 +1,8 @@
|
||||
2018-02-27 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR gcov-profile/84548
|
||||
* g++.dg/gcov/pr84548.C: New test.
|
||||
|
||||
2018-02-27 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/84575
|
||||
|
19
gcc/testsuite/g++.dg/gcov/pr84548.C
Normal file
19
gcc/testsuite/g++.dg/gcov/pr84548.C
Normal file
@ -0,0 +1,19 @@
|
||||
// PR gcov-profile/84548
|
||||
// { dg-options "-fprofile-arcs -ftest-coverage" }
|
||||
// { dg-do run { target native } }
|
||||
// TODO: add support for groups to gcov.exp script
|
||||
|
||||
struct A { static int foo () { return 1; }; static int bar () {
|
||||
int x;
|
||||
return 2; } };
|
||||
|
||||
int main()
|
||||
{
|
||||
int a = A::foo () + A::bar ();
|
||||
if (a != 3)
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// { dg-final { run-gcov remove-gcda pr84548.C } }
|
Loading…
x
Reference in New Issue
Block a user