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 > >