Re: [PATCH] libc/include/complex.h: Add CMPLX, CMPLXF, and CMPLXL

Joel Sherrill <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <CAF9ehCUtDQxp7WFD6nRVHFUb1VFEvZoHTZqUmZ5XOcvdrCPr2w@mail.gmail.com>
Merged. Thanks.

On Wed, Jul 3, 2024 at 6:17 AM Corinna Vinschen <[email protected]> wrote:

> On Jul  1 17:30, Joel Sherrill wrote:
> > On Mon, Jul 1, 2024 at 4:57 PM Andrew Pinski <[email protected]> wrote:
> >
> > > On Mon, Jul 1, 2024 at 2:51 PM Joel Sherrill <[email protected]> wrote:
> > > >
> > > >
> > > >
> > > > On Mon, Jul 1, 2024 at 3:58 PM Andrew Pinski <[email protected]>
> wrote:
> > > >>
> > > >> On Mon, Jul 1, 2024 at 1:53 PM Joel Sherrill <[email protected]>
> 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?
> > >
> > > I am not sure. I was more just warning about __builtin_complex rather
> > > than anything else.
> > >
> >
> > OK. I was just picking low hanging fruit as I was updating my Standards
> API
> > spreadsheet to include POSIX-2024 and see what RTEMS already supports.
> >
> > Do you have an issue with this going in? If you don't, Jeff or Corinna
> > still need to bless it.
>
> GLibC uses the exact same feature test macros, so, LGTM, please push.
>
> Andrew, if you have another change which you think is required for
> newlib, just send a followup patch for discussion.
>
>
> Thanks,
> Corinna
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.