This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug math/21930] C-only gcc builtins used in <math.h> isinf
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 28 Aug 2017 19:26:35 +0000
- Subject: [Bug math/21930] C-only gcc builtins used in <math.h> isinf
- Auto-submitted: auto-generated
- References: <bug-21930-131@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=21930
--- Comment #14 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
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 42496114ec0eb7d6d039d05d4262e109951c600c (commit)
from 56bc7f43603b5d28437496efb32df40997c62cb4 (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 -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=42496114ec0eb7d6d039d05d4262e109951c600c
commit 42496114ec0eb7d6d039d05d4262e109951c600c
Author: Gabriel F. T. Gomes <gftg@linux.vnet.ibm.com>
Date: Tue Aug 22 16:34:42 2017 -0300
Provide a C++ version of iszero that does not use __MATH_TG (bug 21930)
When signaling nans are enabled (with -fsignaling-nans), the C++ version
of iszero uses the fpclassify macro, which is defined with __MATH_TG.
However, when support for float128 is available, __MATH_TG uses the
builtin __builtin_types_compatible_p, which is only available in C mode.
This patch refactors the C++ version of iszero so that it uses function
overloading to select between the floating-point types, instead of
relying on fpclassify and __MATH_TG.
Tested for powerpc64le, s390x, x86_64, and with build-many-glibcs.py.
[BZ #21930]
* math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__]
(iszero): New C++ implementation that does not use
fpclassify/__MATH_TG/__builtin_types_compatible_p, when
signaling nans are enabled, since __builtin_types_compatible_p
is a C-only feature.
* math/test-math-iszero.cc: When __HAVE_DISTINCT_FLOAT128 is
defined, include ieee754_float128.h for access to the union and
member ieee854_float128.ieee.
[__HAVE_DISTINCT_FLOAT128] (do_test): Call check_float128.
[__HAVE_DISTINCT_FLOAT128] (check_float128): New function.
* sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
(CXXFLAGS-test-math-iszero.cc): Add -mfloat128 to the build
options of test-math-zero on powerpc64le.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 17 +++++++
math/math.h | 33 ++++++++++++--
math/test-math-iszero.cc | 79 ++++++++++++++++++++++++++++++++++
sysdeps/powerpc/powerpc64le/Makefile | 3 +-
4 files changed, 127 insertions(+), 5 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.