libstdc++: Fix -Wnarrowing in <complex> [PR116991]

When _GLIBCXX_USE_C99_COMPLEX_ARC is undefined we use the generic
__complex_acos function template for _Float32 etc. and that gives a
-Wnarrowing warning:

complex:2043: warning: ISO C++ does not allow converting to '_Float32' from 'long double' with greater conversion rank [-Wnarrowing]

Use a cast to do the conversion so that it doesn't warn.

libstdc++-v3/ChangeLog:

	PR libstdc++/116991
	* include/std/complex (__complex_acos): Cast literal to
	destination type.
This commit is contained in:
Jonathan Wakely 2024-10-07 10:19:29 +01:00 committed by Jonathan Wakely
parent f5021ce9aa
commit e998014d1b
No known key found for this signature in database

View File

@ -2040,7 +2040,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__complex_acos(const std::complex<_Tp>& __z)
{
const std::complex<_Tp> __t = std::asin(__z);
const _Tp __pi_2 = 1.5707963267948966192313216916397514L;
const _Tp __pi_2 = (_Tp) 1.5707963267948966192313216916397514L;
return std::complex<_Tp>(__pi_2 - __t.real(), -__t.imag());
}