This is the mail archive of the glibc-bugs@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]

[Bug math/21930] C-only gcc builtins used in <math.h> isinf


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.

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