This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Adjust __MATH_EVAL_FMT2 definition to handle _Float16 better [committed]
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Tue, 31 Oct 2017 16:02:46 +0000
- Subject: Adjust __MATH_EVAL_FMT2 definition to handle _Float16 better [committed]
- Authentication-results: sourceware.org; auth=none
Continuing the preparation for additional _FloatN / _FloatNx type
support, this patch adds an additional case in the definition of
__MATH_EVAL_FMT2, as used in defining iseqsig: when
__FLT_EVAL_METHOD__ is 0 or 32, it adds 0.0f to the arguments, so that
the correct function would be selected in the case of _Float16
arguments with excess precision (were glibc to support _Float16, which
of course __MATH_TG and other facilities do not at present - and
_Float16 support is not part of what this patch series is aiming for,
but this particular fix is simple so is included anyway).
Tested for x86_64. Committed.
2017-10-31 Joseph Myers <joseph@codesourcery.com>
* math/math.h
[__FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32]
(__MATH_EVAL_FMT2): Define to add 0.0f.
diff --git a/math/math.h b/math/math.h
index 125d845..326fd8e 100644
--- a/math/math.h
+++ b/math/math.h
@@ -1144,6 +1144,8 @@ iszero (__T __val)
# define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0L)
# elif __FLT_EVAL_METHOD__ == 1 || __FLT_EVAL_METHOD__ > 32
# define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0)
+# elif __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 32
+# define __MATH_EVAL_FMT2(x, y) ((x) + (y) + 0.0f)
# else
# define __MATH_EVAL_FMT2(x, y) ((x) + (y))
# endif
--
Joseph S. Myers
joseph@codesourcery.com