aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/math_private.h7
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h7
-rw-r--r--sysdeps/ieee754/ldbl-96/bits/iscanonical.h7
3 files changed, 7 insertions, 14 deletions
diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h
index 28e5df0..c0d4e3d 100644
--- a/sysdeps/generic/math_private.h
+++ b/sysdeps/generic/math_private.h
@@ -427,12 +427,7 @@ extern long double __lgamma_productl (long double t, long double x,
})
#endif
-#define fabs_tg(x) __builtin_choose_expr \
- (__builtin_types_compatible_p (__typeof (x), float), \
- __builtin_fabsf (x), \
- __builtin_choose_expr \
- (__builtin_types_compatible_p (__typeof (x), double), \
- __builtin_fabs (x), __builtin_fabsl (x)))
+#define fabs_tg(x) __MATH_TG ((x), (__typeof (x)) __builtin_fabs, (x))
#define min_of_type(type) __builtin_choose_expr \
(__builtin_types_compatible_p (type, float), \
FLT_MIN, \
diff --git a/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h b/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
index c7b7c63..d613cde 100644
--- a/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
+++ b/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
@@ -25,6 +25,8 @@
#else
extern int __iscanonicall (long double __x)
__THROW __attribute__ ((__const__));
+# define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1)
+# define __iscanonical(x) ((void) (__typeof (x)) (x), 1)
/* Return nonzero value if X is canonical. In IEEE interchange binary
formats, all values are canonical, but the argument must still be
@@ -32,8 +34,5 @@ extern int __iscanonicall (long double __x)
conversion, before being discarded; in IBM long double, there are
encodings that are not consistently handled as corresponding to any
particular value of the type, and we return 0 for those. */
-# define iscanonical(x) \
- (sizeof (x) == sizeof (long double) \
- ? __iscanonicall (x) \
- : ((void) (__typeof (x)) (x), 1))
+# define iscanonical(x) __MATH_TG ((x), __iscanonical, (x))
#endif
diff --git a/sysdeps/ieee754/ldbl-96/bits/iscanonical.h b/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
index af0c72c..8638db8 100644
--- a/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
+++ b/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
@@ -22,6 +22,8 @@
extern int __iscanonicall (long double __x)
__THROW __attribute__ ((__const__));
+#define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1)
+#define __iscanonical(x) ((void) (__typeof (x)) (x), 1)
/* Return nonzero value if X is canonical. In IEEE interchange binary
formats, all values are canonical, but the argument must still be
@@ -29,7 +31,4 @@ extern int __iscanonicall (long double __x)
conversion, before being discarded; in extended precision, there
are encodings that are not consistently handled as corresponding to
any particular value of the type, and we return 0 for those. */
-#define iscanonical(x) \
- (sizeof (x) == sizeof (long double) \
- ? __iscanonicall (x) \
- : ((void) (__typeof (x)) (x), 1))
+#define iscanonical(x) __MATH_TG ((x), __iscanonical, (x))