From 60342fdbfb0630243d2b85d2ca45204ded990b17 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 11 Mar 2020 09:34:59 +0100 Subject: [PATCH] value-prof: Fix abs uses in value-prof.c [PR93962] Jeff has recently fixed dump_histogram_value to use std::abs instead of abs, because on FreeBSD apparently the ::abs isn't overloaded and only has int abs (int); Seems on Solaris /usr/include/iso/stdlib_iso.h abs has: int abs (int); long abs (long); overloads but already not long long abs (long long); and there is another abs use in get_nth_most_common_value, also on int64_t. The long long std::abs (long long); overload is there only in C++11 and we in GCC10 still support C++98. Martin has said that a counter should never be INT64_MIN, so IMHO it is better to use abs_hwi which will assert that. 2020-03-11 Jakub Jelinek PR bootstrap/93962 * value-prof.c (dump_histogram_value): Use abs_hwi instead of std::abs. (get_nth_most_common_value): Use abs_hwi instead of abs. --- gcc/ChangeLog | 5 +++++ gcc/value-prof.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b2d8ee1c830..e4b74dd1f06 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2020-03-11 Jakub Jelinek + PR bootstrap/93962 + * value-prof.c (dump_histogram_value): Use abs_hwi instead of + std::abs. + (get_nth_most_common_value): Use abs_hwi instead of abs. + PR middle-end/94111 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl is rvc_normal, otherwise use real_to_decimal to print the number to diff --git a/gcc/value-prof.c b/gcc/value-prof.c index 585b909096f..45677be46b1 100644 --- a/gcc/value-prof.c +++ b/gcc/value-prof.c @@ -266,7 +266,7 @@ dump_histogram_value (FILE *dump_file, histogram_value hist) if (hist->hvalue.counters) { fprintf (dump_file, " all: %" PRId64 "%s, values: ", - std::abs ((int64_t) hist->hvalue.counters[0]), + (int64_t) abs_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, const char *counter_type, *count = 0; *value = 0; - gcov_type read_all = abs (hist->hvalue.counters[0]); + gcov_type read_all = abs_hwi (hist->hvalue.counters[0]); gcov_type v = hist->hvalue.counters[2 * n + 1]; gcov_type c = hist->hvalue.counters[2 * n + 2]; -- 2.30.2