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());
     }

Reply via email to