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.
I don't understand why the std/ranges/iota/max_size_type.cc test doesn't
get warnings for using numeric_limits::has_denorm{,_loss} only for using
the enumerator.
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.
---
Tested x86_64-linux.
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 +
.../18_support/numeric_limits/char8_t.cc | 3 +
.../18_support/numeric_limits/denorm_min.cc | 2 +
.../18_support/numeric_limits/dr559.cc | 2 +
.../requirements/constexpr_data.cc | 3 +
.../specialization_default_values.cc | 2 +
.../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>);
--
2.54.0