> +
> +my $gcc_version= `gcc -dumpversion`;
> +$gcc_version=~ s/(\d).*$/$1/;
you don't need this second line, I suspect
It is not unique for all versions, that's why I used it:
$ for i in 5 6 7 9 10; do $(/usr/bin/gcc-$i -dumpversion); done
5.5.0: command not found
6.5.0: command not found
7: command not found
9: command not found
10: command not found
and write `my $fname` here
> + for my $line (@{$file->{lines}}){
> + $cov{$fname}->{$line->{line_number}}= $line->{count};
shouldn't it be += $line->{count} ?
The point is to accumulate all counters, see how it's done for non-json
intermediate format.
> + }
> + }
> }
> }
>
Have seen and I'm not sure how it accumulates since per line "line_number" value is different (I haven't seen 'lcount' to have the same line_number), so the hash is different and += doesn't take effect.
Confirmed that I'm getting the same result with/without += for both versions ( since line number is a function of the counter (one to one relationship) ?)
Maybe to remove += from gcc < 9.1 ?
gcov 7.5:
$ cat sql_show.cc.gcda##field.h.gcov
lcount:847,20 # this line : line_number=847, count = 20
lcount:848,20 # not the same as this one, line_number=848, 20
lcount:851,0
lcount:852,0
lcount:878,0
lcount:981,1181
gcov 9.4:
$ cat <some.gcda.gcov file>
"lines" : [
{
"unexecuted_block" : false,
"function_name" : "sum",
"count" : 1,
"branches" : [],
"line_number" : 3 # this line
},
{
"function_name" : "sum",
"unexecuted_block" : false,
"count" : 1,
"line_number" : 5, # is not the same as this line
"branches" : []
}
],
However I'm confirming that there is different result in counter for the same test and I'm suspecting it is the result of generated parsing between gcov versions:
gcov 7.5 ( counter = 88):
*********************
dgcov sql/sql_show.cc
*********************
@@ +6601,7 @@ static int get_check_constraints_record(THD *thd, TABLE_LIST *tables,
: 6601: }
: 6602:#endif
: 6603: Virtual_column_info *check= tables->table->check_constraints[i];
88: 6605: table->field[0]->store(STRING_WITH_LEN("definition"), system_charset_info);
: 6606: table->field[3]->store(check->name.str, check->name.length,
: 6607: system_charset_info);
gcov 9.4 ( counter = 44):
*********************
dgcov sql/sql_show.cc
*********************
@@ +6601,7 @@ static int get_check_constraints_record(THD *thd, TABLE_LIST *tables,
: 6601: }
: 6602:#endif
: 6603: Virtual_column_info *check= tables->table->check_constraints[i];
44: 6605: table->field[0]->store(STRING_WITH_LEN("definition"), system_charset_info);
: 6606: table->field[3]->store(check->name.str, check->name.length,
: 6607: system_charset_info);
Regards,
Anel
_____________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help : https://help.launchpad.net/ListHelp