https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116991
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org
Last reconfirmed| |2024-10-07
Target Milestone|--- |15.0
Status|UNCONFIRMED |ASSIGNED
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The warning is for the initialization from a long double literal in this
function template:
template<typename _Tp>
inline std::complex<_Tp>
__complex_acos(const std::complex<_Tp>& __z)
{
const std::complex<_Tp> __t = std::asin(__z);
const _Tp __pi_2 = 1.5707963267948966192313216916397514L;
return std::complex<_Tp>(__pi_2 - __t.real(), -__t.imag());
}
This function template isn't used for _Float32, _Float64 etc. on other targets,
because they define _GLIBCXX_USE_C99_COMPLEX_ARC and so have overloads for each
type, like:
inline __complex__ _Float32
__complex_acos(__complex__ _Float32 __z)
{ return __builtin_cacosf(__z); }
We can just use a cast in the generic __complex_acos.