gentle ping…
thanks
Iain
> On 27 Sep 2026, at 15:08, Iain Sandoe <[email protected]> wrote:
>
> std/simd/arithmetic.cc fails everywhere on Darwin because libc there does
> not define __STDC_IEC_60559_COMPLEX__. Fixed by using the compiler's
> indicator if libc does not emit one. Tested on x86_64 linux/darwin,
> OK for trunk? thanks
> Iain
>
> --- 8< ---
>
> __STDC_IEC_60559_COMPLEX__ is not a compiler pre-define; it is provided
> by glibc but not necessarily by other libc implementations.
>
> However the compiler does support Annex G and emits __GCC_IEC_559_COMPLEX
> to indicate this (where the value is > 0). Use the compiler's value where
> __STDC_IEC_60559_COMPLEX__ is absent.
>
> libstdc++-v3/ChangeLog:
>
> * include/bits/simd_details.h: Use __GCC_IEC_559_COMPLEX to
> determine IEC60559 complex support.
>
> Signed-off-by: Iain Sandoe <[email protected]>
> ---
> libstdc++-v3/include/bits/simd_details.h | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/libstdc++-v3/include/bits/simd_details.h
> b/libstdc++-v3/include/bits/simd_details.h
> index 46eab585eb9..29a7195c539 100644
> --- a/libstdc++-v3/include/bits/simd_details.h
> +++ b/libstdc++-v3/include/bits/simd_details.h
> @@ -532,8 +532,13 @@ namespace simd
>
> // C Annex G defines the behavior of complex<T> where T is IEC60559
> floating-point. If
> // __STDC_IEC_60559_COMPLEX__ is defined then Annex G is implemented - and
> simd<complex>
> - // will do so as well. However, Clang never defines the macro.
> -#if defined __STDC_IEC_60559_COMPLEX__ || defined __STDC_IEC_559_COMPLEX__
> || defined _GLIBCXX_CLANG
> + // will do so as well. However, __STDC_IEC_60559_COMPLEX__ is defined (if
> at all)
> + // by the C library and will typically be absent on non-glibc targets.
> + // GCC nevertheless implements Annex G and std::complex relies on it; the
> compiler
> + // emits __GCC_IEC_559_COMPLEX with value > 0 where it is enabled/valid.
> + // Clang is flagged to support it unconditionally.
> +#if defined __STDC_IEC_60559_COMPLEX__ || defined __STDC_IEC_559_COMPLEX__ \
> + || (defined __GCC_IEC_559_COMPLEX && __GCC_IEC_559_COMPLEX > 0) ||
> defined _GLIBCXX_CLANG
> + (1 << 10)
> #endif
> #if __SUPPORT_SNAN__
> --
> 2.50.1 (Apple Git-155)
>