From: Rich Felker Date: Wed, 17 Dec 2014 21:08:50 +0000 (-0500) Subject: provide CMPLX macros in implementation-internal libm.h X-Git-Tag: v1.1.6~25 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a414e8374dfe32f5efd35a49592698f89878de1f;p=oweals%2Fmusl.git provide CMPLX macros in implementation-internal libm.h this avoids assuming the presence of C11 macro definitions in the public complex.h, which need changes potentially incompatible with the way these macros are being used internally. --- diff --git a/src/internal/libm.h b/src/internal/libm.h index ebcd7849..88a7eb47 100644 --- a/src/internal/libm.h +++ b/src/internal/libm.h @@ -128,6 +128,18 @@ do { \ (d) = __u.f; \ } while (0) +#undef __CMPLX +#undef CMPLX +#undef CMPLXF +#undef CMPLXL + +#define __CMPLX(x, y, t) \ + ((union { _Complex t __z; t __xy[2]; }){.__xy = {(x),(y)}}.__z) + +#define CMPLX(x, y) __CMPLX(x, y, double) +#define CMPLXF(x, y) __CMPLX(x, y, float) +#define CMPLXL(x, y) __CMPLX(x, y, long double) + /* fdlibm kernel functions */ int __rem_pio2_large(double*,double*,int,int,int);