diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2025-08-19 17:29:12 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2025-08-21 10:04:45 +0100 |
commit | cf88ed5bf20c86ca38da19358ff79a34adb4d0b5 (patch) | |
tree | e1a059dc3a5889d610062448b249d1ec266f018f | |
parent | 889a1352a2c48320c402aa614c67fe5236ac08ad (diff) | |
download | gcc-cf88ed5bf20c86ca38da19358ff79a34adb4d0b5.zip gcc-cf88ed5bf20c86ca38da19358ff79a34adb4d0b5.tar.gz gcc-cf88ed5bf20c86ca38da19358ff79a34adb4d0b5.tar.bz2 |
libstdc++: Fix std::numeric_limits<__float128>::max_digits10 [PR121374]
When I added this explicit specialization in r14-1433-gf150a084e25eaa I
used the wrong value for the number of mantissa digits (I used 112
instead of 113). Then when I refactored it in r14-1582-g6261d10521f9fd I
used the value calculated from the incorrect value (35 instead of 36).
libstdc++-v3/ChangeLog:
PR libstdc++/121374
* include/std/limits (numeric_limits<__float128>::max_digits10):
Fix value.
* testsuite/18_support/numeric_limits/128bit.cc: Check value.
-rw-r--r-- | libstdc++-v3/include/std/limits | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits index 3567a32..49ce7c9 100644 --- a/libstdc++-v3/include/std/limits +++ b/libstdc++-v3/include/std/limits @@ -2128,7 +2128,7 @@ __glibcxx_float_n(128) static _GLIBCXX_USE_CONSTEXPR int digits = 113; static _GLIBCXX_USE_CONSTEXPR int digits10 = 33; #if __cplusplus >= 201103L - static constexpr int max_digits10 = 35; + static constexpr int max_digits10 = 36; #endif static _GLIBCXX_USE_CONSTEXPR bool is_signed = true; static _GLIBCXX_USE_CONSTEXPR bool is_integer = false; diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc index b13d837..bf12b65 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/128bit.cc @@ -4,6 +4,11 @@ #if __SIZEOF_FLOAT128__ __extension__ template class std::numeric_limits<__float128>; + +# if __cplusplus >= 201103L +static_assert( std::numeric_limits<__float128>::max_digits10 == 36, + "PR libstdc++/121374" ); +# endif #endif #if __SIZEOF_INT128__ |