Tested x86_64-linux. Pushed to trunk. -- >8 --
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. --- 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 5bc6618f7de..eb89e3a8bcf 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()); } -- 2.46.2