From 6181c24aab13606caf6796ddabb051f9fd8569a8 Mon Sep 17 00:00:00 2001 From: Zuzana Baranova <xbaranov@fi.muni.cz> Date: Thu, 27 Jun 2019 15:20:46 +0000 Subject: [PATCH] dios: Use compiler __builtins for math.h classification macros. --- dios/include/math.h | 42 ++++++------------------------------------ 1 file changed, 6 insertions(+), 36 deletions(-) diff --git a/dios/include/math.h b/dios/include/math.h index 783e5bb37..9bfeb2ad8 100644 --- a/dios/include/math.h +++ b/dios/include/math.h @@ -76,30 +76,10 @@ extern char __nan[]; #define MATH_ERREXCEPT 2 #define math_errhandling MATH_ERREXCEPT -#define fpclassify(x) \ - ((sizeof (x) == sizeof (float)) ? \ - __fpclassifyf(x) \ - : (sizeof (x) == sizeof (double)) ? \ - __fpclassify(x) \ - : __fpclassifyl(x)) -#define isfinite(x) \ - ((sizeof (x) == sizeof (float)) ? \ - __isfinitef(x) \ - : (sizeof (x) == sizeof (double)) ? \ - __isfinite(x) \ - : __isfinitel(x)) -#define isnormal(x) \ - ((sizeof (x) == sizeof (float)) ? \ - __isnormalf(x) \ - : (sizeof (x) == sizeof (double)) ? \ - __isnormal(x) \ - : __isnormall(x)) -#define signbit(x) \ - ((sizeof (x) == sizeof (float)) ? \ - __signbitf(x) \ - : (sizeof (x) == sizeof (double)) ? \ - __signbit(x) \ - : __signbitl(x)) +#define fpclassify(x) __builtin_fpclassify(x) +#define isfinite(x) __builtin_isfinite(x) +#define isnormal(x) __builtin_isnormal(x) +#define signbit(x) __builtin_signbit(x) #define isgreater(x, y) (!isunordered((x), (y)) && (x) > (y)) #define isgreaterequal(x, y) (!isunordered((x), (y)) && (x) >= (y)) @@ -110,18 +90,8 @@ extern char __nan[]; #define isunordered(x, y) (isnan(x) || isnan(y)) #endif /* __ISO_C_VISIBLE >= 1999 */ -#define isinf(x) \ - ((sizeof (x) == sizeof (float)) ? \ - __isinff(x) \ - : (sizeof (x) == sizeof (double)) ? \ - __isinf(x) \ - : __isinfl(x)) -#define isnan(x) \ - ((sizeof (x) == sizeof (float)) ? \ - __isnanf(x) \ - : (sizeof (x) == sizeof (double)) ? \ - __isnan(x) \ - : __isnanl(x)) +#define isinf(x) __builtin_isinf(x) +#define isnan(x) __builtin_isnan(x) /* * XOPEN/SVID -- GitLab