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.
This commit is contained in:
Jonathan Wakely
2025-08-19 17:29:12 +01:00
committed by Jonathan Wakely
parent 889a1352a2
commit cf88ed5bf2
2 changed files with 6 additions and 1 deletions

View File

@@ -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;

View File

@@ -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__