Commit 60342fdb by Jakub Jelinek

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  <jakub@redhat.com>

	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.
parent 312992f5
2020-03-11 Jakub Jelinek <jakub@redhat.com> 2020-03-11 Jakub Jelinek <jakub@redhat.com>
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 PR middle-end/94111
* dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl
is rvc_normal, otherwise use real_to_decimal to print the number to is rvc_normal, otherwise use real_to_decimal to print the number to
......
...@@ -266,7 +266,7 @@ dump_histogram_value (FILE *dump_file, histogram_value hist) ...@@ -266,7 +266,7 @@ dump_histogram_value (FILE *dump_file, histogram_value hist)
if (hist->hvalue.counters) if (hist->hvalue.counters)
{ {
fprintf (dump_file, " all: %" PRId64 "%s, values: ", 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 hist->hvalue.counters[0] < 0
? " (values missing)": ""); ? " (values missing)": "");
for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++) for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++)
...@@ -743,7 +743,7 @@ get_nth_most_common_value (gimple *stmt, const char *counter_type, ...@@ -743,7 +743,7 @@ get_nth_most_common_value (gimple *stmt, const char *counter_type,
*count = 0; *count = 0;
*value = 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 v = hist->hvalue.counters[2 * n + 1];
gcov_type c = hist->hvalue.counters[2 * n + 2]; gcov_type c = hist->hvalue.counters[2 * n + 2];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment