https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93962
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think even the using of std::abs in the #c8 case isn't correct, because the
std::abs (long long); overload has been only added in C++11 and we in GCC 10
still do support C++98 compilers.
So I think we instead should use abs_hwi (or absu_hwi, depending on if the most
negative value can appear or not) instead of std::abs or abs in value-prof.c.
So e.g.
--- gcc/value-prof.c 2020-03-05 07:58:02.693135980 +0100
+++ gcc/value-prof.c 2020-03-10 14:32:10.723649888 +0100
@@ -266,7 +266,7 @@ dump_histogram_value (FILE *dump_file, h
if (hist->hvalue.counters)
{
fprintf (dump_file, " all: %" PRId64 "%s, values: ",
- std::abs ((int64_t) hist->hvalue.counters[0]),
+ absu_hwi (hist->hvalue.counters[0]),
hist->hvalue.counters[0] < 0
? " (values missing)": "");
for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++)
@@ -743,7 +743,7 @@ get_nth_most_common_value (gimple *stmt,
*count = 0;
*value = 0;
- gcov_type read_all = abs (hist->hvalue.counters[0]);
+ gcov_type read_all = absu_hwi (hist->hvalue.counters[0]);
gcov_type v = hist->hvalue.counters[2 * n + 1];
gcov_type c = hist->hvalue.counters[2 * n + 2];
or with s/absu/abs/.