[PATCH] libc/include/complex.h: Add CMPLX, CMPLXF, and CMPLXL
Joel Sherrill
joel@rtems.org
Mon Jul 1 21:51:36 GMT 2024
On Mon, Jul 1, 2024 at 3:58 PM Andrew Pinski <pinskia@gmail.com> wrote:
> On Mon, Jul 1, 2024 at 1:53 PM Joel Sherrill <joel@rtems.org> wrote:
> >
> > ---
> > newlib/libc/include/complex.h | 13 +++++++++++++
> > 1 file changed, 13 insertions(+)
> >
> > diff --git a/newlib/libc/include/complex.h
> b/newlib/libc/include/complex.h
> > index ad3028e4c..dbabdf67a 100644
> > --- a/newlib/libc/include/complex.h
> > +++ b/newlib/libc/include/complex.h
> > @@ -16,6 +16,19 @@
> >
> > __BEGIN_DECLS
> >
> > +/* Implementation from FreeBSD */
> > +#if __ISO_C_VISIBLE >= 2011
> > +#ifdef __clang__
> > +#define CMPLX(x, y) ((double complex){ x, y })
> > +#define CMPLXF(x, y) ((float complex){ x, y })
> > +#define CMPLXL(x, y) ((long double complex){ x, y })
> > +#elif __GNUC_PREREQ__(4, 7)
> > +#define CMPLX(x, y) __builtin_complex((double)(x),
> (double)(y))
> > +#define CMPLXF(x, y) __builtin_complex((float)(x), (float)(y))
> > +#define CMPLXL(x, y) __builtin_complex((long double)(x),
> (long double)(y))
>
> I only know this because I have been working with complex in the last
> few weeks but __builtin_complex does not work with GCC's C++ front-end
> (but it is not documented).
> I don't know if you care about using this part of the header with C++
> but I am just putting it out there.
Will C++ see this since it is in __ISO_C_VISIBLE >= 2011?
Do you consider that an issue with GCC? I don't see these in a C++
standard.
Technically that means they shouldn't be visible.
And I am open to changing this if you think that there is an issue.
>
> Thanks,
> Andrew Pinski
>
> > +#endif
> > +#endif /* __ISO_C_VISIBLE >= 2011 */
> > +
> > /* 7.3.5 Trigonometric functions */
> > /* 7.3.5.1 The cacos functions */
> > double complex cacos(double complex);
> > --
> > 2.24.4
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://sourceware.org/pipermail/newlib/attachments/20240701/6c7d894d/attachment.htm>
More information about the Newlib
mailing list