https://gcc.gnu.org/g:e998014d1b14592c43b0f655793011c6395ff02a
commit r15-4210-ge998014d1b14592c43b0f655793011c6395ff02a Author: Jonathan Wakely <jwak...@redhat.com> Date: Mon Oct 7 10:19:29 2024 +0100 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. Diff: --- libstdc++-v3/include/std/complex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index 5bc6618f7de0..eb89e3a8bcfb 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -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()); }