mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
gdb: fix unittests/gmp-utils-selftests.c build on solaris
When building on solaris (gcc farm machine gcc211), I get: CXX unittests/gmp-utils-selftests.o /export/home/simark/src/binutils-gdb/gdb/unittests/gmp-utils-selftests.c: In function 'void selftests::gdb_mpz_read_all_from_small()' : /export/home/simark/src/binutils-gdb/gdb/unittests/gmp-utils-selftests.c:128:43: error: call of overloaded 'pow(int, int)' is ambiguous LONGEST l_min = -pow (2, buf_len * 8 - 1); ^ In file included from /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/math.h:22:0, from ../gnulib/import/math.h:27, from /export/home/simark/src/binutils-gdb/gdb/unittests/gmp-utils-selftests.c:23: /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/iso/math_iso.h:210:21: note: candidate: long double std::pow(long double, long double) inline long double pow(long double __X, long double __Y) { return ^ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/iso/math_iso.h:170:15: note: candidate: float std::pow(float, float) inline float pow(float __X, float __Y) { return __powf(__X, __Y); } ^ /opt/csw/lib/gcc/sparc-sun-solaris2.10/5.5.0/include-fixed/iso/math_iso.h:71:15: note: candidate: double std::pow(double, double) extern double pow __P((double, double)); ^ The "pow" function overloads only exist for float-like types, and the compiler doesn't know which one we want. Change "2" for "2.0", which makes the compiler choose one alternative (the double one, I believe). gdb/ChangeLog: * unittests/gmp-utils-selftests.c (gdb_mpz_read_all_from_small): Pass 2.0 to pow. (gdb_mpz_write_all_from_small): Likewise. Change-Id: Ied2ae0f01494430244a7c94f8a38b07d819f4213
This commit is contained in:

committed by
Simon Marchi

parent
a43b29c90d
commit
c0ad05d567
@ -1,3 +1,9 @@
|
||||
2020-11-20 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* unittests/gmp-utils-selftests.c (gdb_mpz_read_all_from_small):
|
||||
Pass 2.0 to pow.
|
||||
(gdb_mpz_write_all_from_small): Likewise.
|
||||
|
||||
2020-11-20 Simon Marchi <simon.marchi@polymtl.ca>
|
||||
|
||||
* dwarf2/read.c (finish_fixed_point_type): Use std::abs instead
|
||||
|
@ -125,8 +125,8 @@ gdb_mpz_read_all_from_small ()
|
||||
to check the complete range. */
|
||||
|
||||
int buf_len = 1;
|
||||
LONGEST l_min = -pow (2, buf_len * 8 - 1);
|
||||
LONGEST l_max = pow (2, buf_len * 8 - 1) - 1;
|
||||
LONGEST l_min = -pow (2.0, buf_len * 8 - 1);
|
||||
LONGEST l_max = pow (2.0, buf_len * 8 - 1) - 1;
|
||||
|
||||
for (LONGEST l = l_min; l <= l_max; l++)
|
||||
{
|
||||
@ -141,7 +141,7 @@ gdb_mpz_read_all_from_small ()
|
||||
|
||||
/* Do the same as above, but with an unsigned type. */
|
||||
ULONGEST ul_min = 0;
|
||||
ULONGEST ul_max = pow (2, buf_len * 8) - 1;
|
||||
ULONGEST ul_max = pow (2.0, buf_len * 8) - 1;
|
||||
|
||||
for (ULONGEST ul = ul_min; ul <= ul_max; ul++)
|
||||
{
|
||||
@ -248,8 +248,8 @@ static void
|
||||
gdb_mpz_write_all_from_small ()
|
||||
{
|
||||
int buf_len = 1;
|
||||
LONGEST l_min = -pow (2, buf_len * 8 - 1);
|
||||
LONGEST l_max = pow (2, buf_len * 8 - 1) - 1;
|
||||
LONGEST l_min = -pow (2.0, buf_len * 8 - 1);
|
||||
LONGEST l_max = pow (2.0, buf_len * 8 - 1) - 1;
|
||||
|
||||
for (LONGEST l = l_min; l <= l_max; l++)
|
||||
{
|
||||
@ -259,7 +259,7 @@ gdb_mpz_write_all_from_small ()
|
||||
|
||||
/* Do the same as above, but with an unsigned type. */
|
||||
ULONGEST ul_min = 0;
|
||||
ULONGEST ul_max = pow (2, buf_len * 8) - 1;
|
||||
ULONGEST ul_max = pow (2.0, buf_len * 8) - 1;
|
||||
|
||||
for (ULONGEST ul = ul_min; ul <= ul_max; ul++)
|
||||
{
|
||||
|
Reference in New Issue
Block a user