Issue: CMPLX is not defined

Joel Sherrill joel@rtems.org
Tue May 10 15:49:18 GMT 2022


On Tue, May 10, 2022 at 10:40 AM Pavel M <pavel.morozkin@gmail.com> wrote:

> Hi all,
>
> Issue: CMPLX is not defined.
>
> $ cat t649.c
> #if __STDC_NO_COMPLEX__ != 1
> #include <complex.h>
> #ifndef CMPLX
> #error
> #endif
> #endif
>
> $ gcc t649.c -std=c11 -pedantic -Wall -Wextra
> t649.c:4:2: error: #error
>     4 | #error
>       |  ^~~~~
>
> C11:
> > 7.3.9.3 The CMPLX macros
>
> Please fix.
>

If you really need these, they are simple to implement and patches are
always welcomed. This is the entirety of the implementation for glibc:

#if defined __USE_ISOC11 && __GNUC_PREREQ (4, 7)
/* Macros to expand into expression of specified complex type.  */
# define CMPLX(x, y) __builtin_complex ((double) (x), (double) (y))
# define CMPLXF(x, y) __builtin_complex ((float) (x), (float) (y))
# ifndef __NO_LONG_DOUBLE_MATH
#  define CMPLXL(x, y) __builtin_complex ((long double) (x), (long double)
(y))
# endif
#endif

Should be a simple patch to complex.h

--joel


More information about the Newlib mailing list