This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.25-563-g8d375da


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  8d375dafe2caa85add7d5ef5bf8c8d421353df7b (commit)
      from  f20079d219d7973ab43712adad6268901dc0eac3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8d375dafe2caa85add7d5ef5bf8c8d421353df7b

commit 8d375dafe2caa85add7d5ef5bf8c8d421353df7b
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Jun 22 23:03:38 2017 +0000

    Support _Float128 in math-tests.h.
    
    This patch makes math-tests.h, as used to describe support of given
    floating-point types for sNaNs, rounding modes and exceptions, handle
    distinguishing _Float128 from long double.  This is needed for x86_64,
    where if building with GCC 6 or earlier there is no __builtin_nansq,
    so no way to get a signaling NaN of _Float128 type, so associated
    tests cannot be run (although glibc itself works fine, as there is
    never any need to create such an sNaN with a built-in function inside
    glibc).
    
    Tested for x86_64 (in conjunction with float128 patches).
    
    	* sysdeps/generic/math-tests.h: Include <bits/floatn.h>.
    	(MATH_TESTS_TG): New macro.
    	(SNAN_TESTS_float128): Likewise.
    	(ROUNDING_TESTS_float128): Likewise.
    	(EXCEPTION_TESTS_float128): Likewise.
    	(SNAN_TESTS): Define using MATH_TESTS_TG.
    	(ROUNDING_TESTS): Likewise.
    	(EXCEPTION_TESTS): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 80b1479..8f05b18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2017-06-22  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/generic/math-tests.h: Include <bits/floatn.h>.
+	(MATH_TESTS_TG): New macro.
+	(SNAN_TESTS_float128): Likewise.
+	(ROUNDING_TESTS_float128): Likewise.
+	(EXCEPTION_TESTS_float128): Likewise.
+	(SNAN_TESTS): Define using MATH_TESTS_TG.
+	(ROUNDING_TESTS): Likewise.
+	(EXCEPTION_TESTS): Likewise.
+
 	* sysdeps/ieee754/float128/float128_private.h
 	[SET_RESTORE_ROUNDF128] (SET_RESTORE_ROUNDL): Take an argument and
 	pass it to SET_RESTORE_ROUNDF128.
diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h
index a4054ea..624fc48 100644
--- a/sysdeps/generic/math-tests.h
+++ b/sysdeps/generic/math-tests.h
@@ -16,6 +16,23 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <bits/floatn.h>
+
+/* Expand the appropriate macro for whether to enable tests for a
+   given type.  */
+#if __HAVE_DISTINCT_FLOAT128
+# define MATH_TESTS_TG(PREFIX, ARGS, TYPE)				\
+  (sizeof (TYPE) == sizeof (float) ? PREFIX ## float ARGS		\
+   : sizeof (TYPE) == sizeof (double) ? PREFIX ## double ARGS		\
+   : __builtin_types_compatible_p (TYPE, _Float128) ? PREFIX ## float128 ARGS \
+   : PREFIX ## long_double ARGS)
+# else
+# define MATH_TESTS_TG(PREFIX, ARGS, TYPE)				\
+  (sizeof (TYPE) == sizeof (float) ? PREFIX ## float ARGS		\
+   : sizeof (TYPE) == sizeof (double) ? PREFIX ## double ARGS		\
+   : PREFIX ## long_double ARGS)
+#endif
+
 /* Indicate whether to run tests involving sNaN values for the float, double,
    and long double C data types, respectively.  All are run unless
    overridden.  */
@@ -28,12 +45,12 @@
 #ifndef SNAN_TESTS_long_double
 # define SNAN_TESTS_long_double	1
 #endif
+#ifndef SNAN_TESTS_float128
+# define SNAN_TESTS_float128	1
+#endif
 
 /* Return nonzero value if to run tests involving sNaN values for X.  */
-#define SNAN_TESTS(x)							\
-  (sizeof (x) == sizeof (float) ? SNAN_TESTS_float			\
-   : sizeof (x) == sizeof (double) ? SNAN_TESTS_double			\
-   : SNAN_TESTS_long_double)
+#define SNAN_TESTS(x) MATH_TESTS_TG (SNAN_TESTS_, , x)
 
 /* Indicate whether to run tests involving type casts of sNaN values.  These
    are run unless overridden.  */
@@ -61,11 +78,12 @@
 #ifndef ROUNDING_TESTS_long_double
 # define ROUNDING_TESTS_long_double(MODE)	1
 #endif
+#ifndef ROUNDING_TESTS_float128
+# define ROUNDING_TESTS_float128(MODE)	1
+#endif
 
-#define ROUNDING_TESTS(TYPE, MODE)					\
-  (sizeof (TYPE) == sizeof (float) ? ROUNDING_TESTS_float (MODE)	\
-   : sizeof (TYPE) == sizeof (double) ? ROUNDING_TESTS_double (MODE)	\
-   : ROUNDING_TESTS_long_double (MODE))
+#define ROUNDING_TESTS(TYPE, MODE)		\
+  MATH_TESTS_TG (ROUNDING_TESTS_, (MODE), TYPE)
 
 /* Indicate whether to run tests of floating-point exceptions for a
    given floating-point type, given that the exception macros are
@@ -79,11 +97,11 @@
 #ifndef EXCEPTION_TESTS_long_double
 # define EXCEPTION_TESTS_long_double	1
 #endif
+#ifndef EXCEPTION_TESTS_float128
+# define EXCEPTION_TESTS_float128	1
+#endif
 
-#define EXCEPTION_TESTS(TYPE)					\
-  (sizeof (TYPE) == sizeof (float) ? EXCEPTION_TESTS_float	\
-   : sizeof (TYPE) == sizeof (double) ? EXCEPTION_TESTS_double	\
-   : EXCEPTION_TESTS_long_double)
+#define EXCEPTION_TESTS(TYPE) MATH_TESTS_TG (EXCEPTION_TESTS_, , TYPE)
 
 /* Indicate whether the given exception trap(s) can be enabled
    in feenableexcept.  If non-zero, the traps are always supported.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                    |    9 +++++++++
 sysdeps/generic/math-tests.h |   42 ++++++++++++++++++++++++++++++------------
 2 files changed, 39 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]