https://gcc.gnu.org/g:6a4cfad20b7f7eacb352aed01b6159baa9935f2a
commit r17-647-g6a4cfad20b7f7eacb352aed01b6159baa9935f2a Author: Jonathan Wakely <[email protected]> Date: Tue May 19 17:44:44 2026 +0100 libstdc++: Deprecate numeric_limits::has_denorm for C++23 The paper P2614R2 was approved in Issaquah, 2023. It deprecates the float_denorm_style enumeration type, its enumerators, and the numeric_limits::has_denorm and numeric_limits::has_denorm_loss static data members. The std/ranges/iota/max_size_type.cc test doesn't get warnings for using numeric_limits::has_denorm{,_loss} because of PR c++/125406. If that gets fixed, we'll need two new dg-warning lines in that test. libstdc++-v3/ChangeLog: * doc/xml/manual/evolution.xml: Document deprecations. * doc/html/manual/api.html: Regenerate. * include/bits/max_size_type.h (numeric_limits::has_denorm): Mark as deprecated. (numeric_limits::has_denorm_loss): Likewise. * include/std/limits (float_denorm_style): Mark as deprecated. (numeric_limits::has_denorm, numeric_limits::has_denorm_loss): Mark as deprecated. * testsuite/18_support/numeric_limits/char16_32_t.cc: Add dg-warning for expected deprecation warnings. * testsuite/18_support/numeric_limits/char8_t.cc: Likewise. * testsuite/18_support/numeric_limits/denorm_min.cc: Likewise. * testsuite/18_support/numeric_limits/dr559.cc: Likewise. * testsuite/18_support/numeric_limits/requirements/constexpr_data.cc: Likewise. * testsuite/18_support/numeric_limits/specialization_default_values.cc: Likewise. * testsuite/std/ranges/iota/max_size_type.cc: Likewise. Reviewed-by: Tomasz Kamiński <[email protected]> Diff: --- libstdc++-v3/doc/html/manual/api.html | 5 ++ libstdc++-v3/doc/xml/manual/evolution.xml | 8 +++ libstdc++-v3/include/bits/max_size_type.h | 10 ++++ libstdc++-v3/include/std/limits | 59 ++++++++++++++++++++-- .../18_support/numeric_limits/char16_32_t.cc | 3 ++ .../testsuite/18_support/numeric_limits/char8_t.cc | 3 ++ .../18_support/numeric_limits/denorm_min.cc | 2 + .../testsuite/18_support/numeric_limits/dr559.cc | 2 + .../numeric_limits/requirements/constexpr_data.cc | 3 ++ .../specialization_default_values.cc | 2 + .../testsuite/std/ranges/iota/max_size_type.cc | 2 + 11 files changed, 95 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/doc/html/manual/api.html b/libstdc++-v3/doc/html/manual/api.html index 4fce14127ef8..2398bf495361 100644 --- a/libstdc++-v3/doc/html/manual/api.html +++ b/libstdc++-v3/doc/html/manual/api.html @@ -519,4 +519,9 @@ Made <code class="code">std::is_integral_v<__int128></code> true for stric Removed allocator-extended constructors and support for uses-allocator construction from <code class="classname">std::promise</code> and <code class="classname">std::packaged_task</code>. +</p><p> +<code class="code">std::numeric_limits::has_denorm</code>, +<code class="code">std::numeric_limits::has_denorm_loss</code>, +and <code class="code">enum std::float_denorm_style</code> and its enumerators +were deprecated for C++23. </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendix_porting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">ABI Policy and Guidelines </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Backwards Compatibility</td></tr></table></div></body></html> \ No newline at end of file diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml b/libstdc++-v3/doc/xml/manual/evolution.xml index 2ebdebc98204..8c471cca5b89 100644 --- a/libstdc++-v3/doc/xml/manual/evolution.xml +++ b/libstdc++-v3/doc/xml/manual/evolution.xml @@ -1170,6 +1170,14 @@ Removed allocator-extended constructors and support for uses-allocator construction from <classname>std::promise</classname> and <classname>std::packaged_task</classname>. </para> + +<para> +<code>std::numeric_limits::has_denorm</code>, +<code>std::numeric_limits::has_denorm_loss</code>, +and <code>enum std::float_denorm_style</code> and its enumerators +were deprecated for C++23. +</para> + </section> </section> diff --git a/libstdc++-v3/include/bits/max_size_type.h b/libstdc++-v3/include/bits/max_size_type.h index 042aad10a138..28596f0dd51f 100644 --- a/libstdc++-v3/include/bits/max_size_type.h +++ b/libstdc++-v3/include/bits/max_size_type.h @@ -791,9 +791,14 @@ namespace ranges static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static constexpr bool has_denorm_loss = false; static constexpr bool tinyness_before = false; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" // denorm_absent + _GLIBCXX23_DEPRECATED static constexpr float_denorm_style has_denorm = denorm_absent; +#pragma GCC diagnostic pop static constexpr float_round_style round_style = round_toward_zero; static constexpr _Sp @@ -858,9 +863,14 @@ namespace ranges static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static constexpr bool has_denorm_loss = false; static constexpr bool tinyness_before = false; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + _GLIBCXX23_DEPRECATED static constexpr float_denorm_style has_denorm = denorm_absent; +#pragma GCC diagnostic pop static constexpr float_round_style round_style = round_toward_zero; static constexpr _Dp diff --git a/libstdc++-v3/include/std/limits b/libstdc++-v3/include/std/limits index cfdbe02c844c..4dc9c643bba6 100644 --- a/libstdc++-v3/include/std/limits +++ b/libstdc++-v3/include/std/limits @@ -45,6 +45,7 @@ #pragma GCC diagnostic ignored "-Wpedantic" // Q suffix #pragma GCC diagnostic ignored "-Wlong-long" #pragma GCC diagnostic ignored "-Wc++23-extensions" +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" // denorm enums #include <bits/c++config.h> @@ -191,14 +192,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION * These values represent the presence or absence of a variable number * of exponent bits. This type is used in the std::numeric_limits class. */ - enum float_denorm_style + enum _GLIBCXX23_DEPRECATED float_denorm_style { /// Indeterminate at compile time whether denormalized values are allowed. - denorm_indeterminate = -1, + denorm_indeterminate _GLIBCXX23_DEPRECATED = -1, /// The type does not allow denormalized values. - denorm_absent = 0, + denorm_absent _GLIBCXX23_DEPRECATED = 0, /// The type allows denormalized values. - denorm_present = 1 + denorm_present _GLIBCXX23_DEPRECATED = 1 }; /** @@ -275,10 +276,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; /** See std::float_denorm_style for more information. */ + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; /** True if loss of accuracy is detected as a denormalization loss, rather than as an inexact result. */ + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; /** True if-and-only-if the type adheres to the IEC 559 standard, also @@ -431,8 +434,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR bool @@ -498,8 +503,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR @@ -566,8 +573,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR signed char @@ -637,8 +646,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR unsigned char @@ -709,8 +720,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR wchar_t @@ -773,8 +786,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR char8_t @@ -838,7 +853,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static constexpr float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static constexpr bool has_denorm_loss = false; static constexpr char16_t @@ -899,7 +916,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static constexpr bool has_infinity = false; static constexpr bool has_quiet_NaN = false; static constexpr bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static constexpr float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static constexpr bool has_denorm_loss = false; static constexpr char32_t @@ -965,8 +984,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR short @@ -1034,8 +1055,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR unsigned short @@ -1105,8 +1128,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR int @@ -1174,8 +1199,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR unsigned int @@ -1244,8 +1271,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR long @@ -1313,8 +1342,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR unsigned long @@ -1386,8 +1417,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR long long @@ -1456,8 +1489,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR unsigned long long @@ -1525,8 +1560,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \ static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \ static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \ + _GLIBCXX23_DEPRECATED \ static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ = denorm_absent; \ + _GLIBCXX23_DEPRECATED \ static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ \ static _GLIBCXX_CONSTEXPR TYPE \ @@ -1594,8 +1631,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = false; \ static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = false; \ static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; \ + _GLIBCXX23_DEPRECATED \ static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ = denorm_absent; \ + _GLIBCXX23_DEPRECATED \ static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ \ static _GLIBCXX_CONSTEXPR unsigned TYPE \ @@ -1715,8 +1754,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = __FLT_HAS_INFINITY__; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = __FLT_HAS_QUIET_NAN__; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = has_quiet_NaN; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = bool(__FLT_HAS_DENORM__) ? denorm_present : denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = __glibcxx_float_has_denorm_loss; @@ -1790,8 +1831,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = __DBL_HAS_INFINITY__; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = __DBL_HAS_QUIET_NAN__; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = has_quiet_NaN; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = bool(__DBL_HAS_DENORM__) ? denorm_present : denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = __glibcxx_double_has_denorm_loss; @@ -1865,8 +1908,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static _GLIBCXX_USE_CONSTEXPR bool has_infinity = __LDBL_HAS_INFINITY__; static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = __LDBL_HAS_QUIET_NAN__; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = has_quiet_NaN; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = bool(__LDBL_HAS_DENORM__) ? denorm_present : denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = __glibcxx_long_double_has_denorm_loss; @@ -1958,9 +2003,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION = __glibcxx_concat3 (__FLT, BITSIZE, _HAS_QUIET_NAN__); \ static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN \ = has_quiet_NaN; \ + _GLIBCXX23_DEPRECATED \ static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm \ = bool(__glibcxx_concat3 (__FLT, BITSIZE, _HAS_DENORM__)) \ ? denorm_present : denorm_absent; \ + _GLIBCXX23_DEPRECATED \ static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; \ \ static _GLIBCXX_CONSTEXPR _Float##BITSIZE \ @@ -2057,8 +2104,10 @@ __glibcxx_float_n(128) static _GLIBCXX_USE_CONSTEXPR bool has_quiet_NaN = __BFLT16_HAS_QUIET_NAN__; static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = has_quiet_NaN; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = bool(__BFLT16_HAS_DENORM__) ? denorm_present : denorm_absent; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR __gnu_cxx::__bfloat16_t @@ -2157,8 +2206,10 @@ __glibcxx_float_n(128) #else static _GLIBCXX_USE_CONSTEXPR bool has_signaling_NaN = false; #endif + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR float_denorm_style has_denorm = denorm_present; + _GLIBCXX23_DEPRECATED static _GLIBCXX_USE_CONSTEXPR bool has_denorm_loss = false; static _GLIBCXX_CONSTEXPR __float128 diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc index 2c8712c861cd..8bedf48ceb4a 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/char16_32_t.cc @@ -66,6 +66,9 @@ template<typename T, typename R> VERIFY( char_type::round_style == impl_type::round_style ); } +// { dg-warning "has_denorm' is deprecated" "" { target c++23 } 55 } +// { dg-warning "has_denorm_loss' is deprecated" "" { target c++23 } 56 } + int main() { do_test<char16_t, std::uint_least16_t>(); diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc index e23dbb7adbf6..a114860610e8 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/char8_t.cc @@ -63,6 +63,9 @@ template<typename T, typename R> VERIFY( char_type::round_style == impl_type::round_style ); } +// { dg-warning "has_denorm' is deprecated" "" { target c++23 } 52 } +// { dg-warning "has_denorm_loss' is deprecated" "" { target c++23 } 53 } + int main() { do_test<char8_t, unsigned char>(); diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc index b508d082b8e7..d4113ebf3d8d 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/denorm_min.cc @@ -43,6 +43,8 @@ test_denorm_min() VERIFY (test); } +// { dg-warning "has_denorm' is deprecated" "" { target c++23 } 36 } +// { dg-warning "denorm_present' is deprecated" "" { target c++23 } 36 } int main() { diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc index 88c0ca505f28..a329b80fc8e5 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/dr559.cc @@ -65,6 +65,8 @@ template<typename T> VERIFY( cv_limits::tinyness_before == limits::tinyness_before ); VERIFY( cv_limits::round_style == limits::round_style ); } +// { dg-warning "has_denorm' is deprecated" "" { target c++23 } 52 } +// { dg-warning "has_denorm_loss' is deprecated" "" { target c++23 } 53 } template<typename T> void diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc index 43985b5b7348..5cd53b35f5ed 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc @@ -88,6 +88,9 @@ namespace __gnu_test } }; } +// { dg-warning "float_denorm_style' is deprecated" "" { target c++23 } 67 } +// { dg-warning "has_denorm' is deprecated" "" { target c++23 } 68 } +// { dg-warning "has_denorm_loss' is deprecated" "" { target c++23 } 70 } int main() { diff --git a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc index 1bff0ad7f4d6..63a42bee0e15 100644 --- a/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc +++ b/libstdc++-v3/testsuite/18_support/numeric_limits/specialization_default_values.cc @@ -78,6 +78,8 @@ void test01() VERIFY( !obj.tinyness_before ); VERIFY( obj.round_style == std::round_toward_zero ); } +// { dg-warning "has_denorm' is deprecated" "" { target c++23 } 68 } +// { dg-warning "has_denorm_loss' is deprecated" "" { target c++23 } 69 } // test linkage of the generic bits template struct std::numeric_limits<B>; diff --git a/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc b/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc index af53718a95b3..d200554cbd16 100644 --- a/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc +++ b/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc @@ -428,6 +428,8 @@ constexpr bool verify_numeric_limits_values_not_meaningful_for = true && (numeric_limits<integer_class>::quiet_NaN() == 0) && (numeric_limits<integer_class>::signaling_NaN() == 0); +// { dg-warning "denorm_absent' is deprecated" "" { target c++23 } 422 } + static_assert(verify_numeric_limits_values_not_meaningful_for<max_size_t>); static_assert(verify_numeric_limits_values_not_meaningful_for<max_diff_t>);
