Fix the C++ version of issignaling when __NO_LONG_DOUBLE_MATH is defined

When __NO_LONG_DOUBLE_MATH is defined, __issignalingl is not available,
thus issignaling with long double argument should call __issignaling,
instead.

Tested for powerpc64le.

	* math/math.h [defined __cplusplus] (issignaling): In the long
	double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH
	is not defined.  Call __issignaling, otherwise.
This commit is contained in:
Gabriel F. T. Gomes 2017-08-23 10:16:54 -03:00
parent ebd6f0076a
commit 3d7b66f66c
2 changed files with 15 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2017-08-24 Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
* math/math.h [defined __cplusplus] (issignaling): In the long
double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH
is not defined. Call __issignaling, otherwise.
2017-08-24 Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysdeps/unix/make-syscalls.sh: Remove cancellable tagging for

View file

@ -486,7 +486,15 @@ enum
extern "C++" {
inline int issignaling (float __val) { return __issignalingf (__val); }
inline int issignaling (double __val) { return __issignaling (__val); }
inline int issignaling (long double __val) { return __issignalingl (__val); }
inline int
issignaling (long double __val)
{
# ifdef __NO_LONG_DOUBLE_MATH
return __issignaling (__val);
# else
return __issignalingl (__val);
# endif
}
# if __HAVE_DISTINCT_FLOAT128
inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); }
# endif