From a16e8bc08edca84d507715c66d6cddbbc7ed3b62 Mon Sep 17 00:00:00 2001 From: "Gabriel F. T. Gomes" Date: Mon, 14 Aug 2017 13:46:15 -0300 Subject: Provide a C++ version of issignaling that does not use __MATH_TG The macro __MATH_TG contains the logic to select between long double and _Float128, when these types are ABI-distinct. This logic relies on __builtin_types_compatible_p, which is not available in C++ mode. On the other hand, C++ function overloading provides the means to distinguish between the floating-point types. The overloading resolution will match the correct parameter regardless of type qualifiers, i.e.: const and volatile. Tested for powerpc64le, s390x, and x86_64. * math/math.h [defined __cplusplus] (issignaling): Provide a C++ definition for issignaling that does not rely on __MATH_TG, since __MATH_TG uses __builtin_types_compatible_p, which is only available in C mode. (CFLAGS-test-math-issignaling.cc): New variable. * math/Makefile [CXX] (tests): Add test-math-issignaling. * math/test-math-issignaling.cc: New test for C++ implementation of type-generic issignaling. * sysdeps/powerpc/powerpc64le/Makefile [subdir == math] (CXXFLAGS-test-math-issignaling.cc): Add -mfloat128 to the build options of test-math-issignaling on powerpc64le. --- ChangeLog | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index 53fdcb496a..30fb2b173b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2017-08-22 Gabriel F. T. Gomes + + * math/math.h [defined __cplusplus] (issignaling): Provide a C++ + definition for issignaling that does not rely on __MATH_TG, + since __MATH_TG uses __builtin_types_compatible_p, which is only + available in C mode. + (CFLAGS-test-math-issignaling.cc): New variable. + * math/Makefile [CXX] (tests): Add test-math-issignaling. + * math/test-math-issignaling.cc: New test for C++ implementation + of type-generic issignaling. + * sysdeps/powerpc/powerpc64le/Makefile [subdir == math] + (CXXFLAGS-test-math-issignaling.cc): Add -mfloat128 to the build + options of test-math-issignaling on powerpc64le. + 2017-08-22 H.J. Lu * include/libc-symbols.h (__hidden_proto_hiddenattr): New for -- cgit v1.2.3