abseil / abseil/abseil-cpp

[Bug]: error: call of overloaded 'ldexp(long int, int)' is ambiguous

Abierto
#1,824 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
C++
Estrellas
18.1k
Forks
3.2k
Merge medio
20 h 36 min
PR fusionados (30 d)
1

Descripción

### Describe the issue

The compilation of abseil-cpp 20240116.3 fails on OpenIndiana with this error:

```
In file included from /usr/include/gtest/gtest.h:71,
from /data/builds/oi-userland/components/library/abseil-cpp/abseil-cpp-20240116.3/absl/strings/charconv_test.cc:25:
/data/builds/oi-userland/components/library/abseil-cpp/abseil-cpp-20240116.3/absl/strings/charconv_test.cc: In member function 'virtual void {anonymous}::FromChars_NearRoundingCasesExplicit_Test::TestBody()':
/data/builds/oi-userland/components/library/abseil-cpp/abseil-cpp-20240116.3/absl/strings/charconv_test.cc:183:38: error: call of overloaded 'ldexp(long int, int)' is ambiguous
183 | EXPECT_EQ(ToDouble("5.e125"), ldexp(6653062250012735, 365));
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/math.h:35,
from /usr/gcc/14/include/c++/14.2.0/bits/std_abs.h:40,
from /usr/gcc/14/include/c++/14.2.0/cstdlib:81,
from /usr/gcc/14/include/c++/14.2.0/ext/string_conversions.h:43,
from /usr/gcc/14/include/c++/14.2.0/bits/basic_string.h:4154,
from /usr/gcc/14/include/c++/14.2.0/string:54,
from /usr/gcc/14/include/c++/14.2.0/stdexcept:39,
from /usr/gcc/14/include/c++/14.2.0/system_error:43,
from /data/builds/oi-userland/components/library/abseil-cpp/abseil-cpp-20240116.3/absl/strings/charconv.h:18,
from /data/builds/oi-userland/components/library/abseil-cpp/abseil-cpp-20240116.3/absl/strings/charconv_test.cc:15:
/usr/include/iso/math_iso.h:211:28: note: candidate: 'long double std::ldexp(long double, int)'
211 | inline long double ldexp(long double __X, int __Y) {
| ^~~~~
/usr/include/iso/math_iso.h:171:22: note: candidate: 'float std::ldexp(float, int)'
171 | inline float ldexp(float __X, int __Y) { return __ldexpf(__X, __Y); }
| ^~~~~
/usr/include/iso/math_iso.h:71:15: note: candidate: 'double std::ldexp(double, int)'
71 | extern double ldexp(double, int);
| ^~~~~
/data/builds/oi-userland/components/library/abseil-cpp/abseil-cpp-20240116.3/absl/strings/charconv_test.cc:184:39: error: call of overloaded 'ldexp(long int, int)' is ambiguous
184 | EXPECT_EQ(ToDouble("69.e267"), ldexp(4705683757438170, 841));
| ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/iso/math_iso.h:211:28: note: candidate: 'long double std::ldexp(long double, int)'
211 | inline long double ldexp(long double __X, int __Y) {
| ^~~~~
/usr/include/iso/math_iso.h:171:22: note: candidate: 'float std::ldexp(float, int)'
171 | inline float ldexp(float __X, int __Y) { return __ldexpf(__X, __Y); }
| ^~~~~
/usr/include/iso/math_iso.h:71:15: note: candidate: 'double std::ldexp(double, int)'
71 | extern double ldexp(double, int);
| ^~~~~
```

### Steps to reproduce the problem

Compile abseil-cpp 20240116.3 with `-DABSL_BUILD_TESTING=ON` and `-DABSL_USE_EXTERNAL_GOOGLETEST=ON` on OpenIndiana.

### What version of Abseil are you using?

20240116.3

### What operating system and version are you using?

OpenIndiana (illumos distro)

### What compiler and version are you using?

```
$ gcc --version
gcc (OpenIndiana 14.2.0-oi-1) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$
```

### What build system are you using?

cmake version 3.31.5

### Additional context

_No response_

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.