aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimplify.cc
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2022-03-03 12:34:27 +0000
committerJonathan Wakely <jwakely@redhat.com>2022-03-03 22:24:45 +0000
commit9805965e3551b66b5bd751d6076791d00cdeb137 (patch)
tree288db4761d23164160d952f925428e5fea5b5281 /gcc/gimplify.cc
parent51149a05b8cc8e4fc5a77a65857894daa371de89 (diff)
downloadgcc-9805965e3551b66b5bd751d6076791d00cdeb137.zip
gcc-9805965e3551b66b5bd751d6076791d00cdeb137.tar.gz
gcc-9805965e3551b66b5bd751d6076791d00cdeb137.tar.bz2
libstdc++: Implement std::strong_order for floating-point types [PR96526]
This removes a FIXME in <compare>, defining the total order for floating-point types. I originally opened PR96526 to request a new compiler built-in to implement this, but now that we have std::bit_cast it can be done entirely in the library. The implementation is based on the glibc definitions of totalorder, totalorderf, totalorderl etc. I think this works for all the types that satisfy std::floating_point today, and should also work for the types expected to be added by P1467 except for std::bfloat16_t. It also supports some additional types that don't currently satisfy std::floating_point, such as __float80, but we probably do want that to satisfy the concept for non-strict modes. libstdc++-v3/ChangeLog: PR libstdc++/96526 * libsupc++/compare (strong_order): Add missing support for floating-point types. * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc: New test.
Diffstat (limited to 'gcc/gimplify.cc')
0 files changed, 0 insertions, 0 deletions