X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Finternal%2Flibm.h;h=a71c4c05ab092b77bfd2c24e8a6eaab569745bea;hp=67c42b981c0163ce160975074aa9de5d5a9c7d06;hb=6ab8136b4477fd75381c06fa0e7fa93c89c712a1;hpb=2e8c8fbe7d65ba0026cb084dc8570d94cbc908ff diff --git a/src/internal/libm.h b/src/internal/libm.h index 67c42b98..a71c4c05 100644 --- a/src/internal/libm.h +++ b/src/internal/libm.h @@ -32,6 +32,19 @@ union dshape { uint64_t bits; }; +#define FORCE_EVAL(x) do { \ + if (sizeof(x) == sizeof(float)) { \ + volatile float __x; \ + __x = (x); \ + } else if (sizeof(x) == sizeof(double)) { \ + volatile double __x; \ + __x = (x); \ + } else { \ + volatile long double __x; \ + __x = (x); \ + } \ +} while(0) + /* Get two 32 bit ints from a double. */ #define EXTRACT_WORDS(hi,lo,d) \ do { \ @@ -173,14 +186,6 @@ union lcomplex { long double a[2]; }; -// FIXME: move to complex.h ? -#define creal(z) ((double)(z)) -#define crealf(z) ((float)(z)) -#define creall(z) ((long double)(z)) -#define cimag(z) ((union dcomplex){(z)}.a[1]) -#define cimagf(z) ((union fcomplex){(z)}.a[1]) -#define cimagl(z) ((union lcomplex){(z)}.a[1]) - /* x + y*I is not supported properly by gcc */ #define cpack(x,y) ((union dcomplex){.a={(x),(y)}}.z) #define cpackf(x,y) ((union fcomplex){.a={(x),(y)}}.z)