Covers issues affecting pre-C++23 features that was accepted during
meetings in year 2023.
libstdc++-v3/ChangeLog:
* include/bits/version.def (allocate_at_least): Add comment
listing papers adding values and LWG3887.
* include/bits/stl_iterator.h: Add comment for LWG3953.
* include/std/format: Add comment for LWG3892.
* include/std/type_traits: Add comment for LWG3655.
---
Tested locally for any dg-messages with line numbers.
Pushed to trunk.
libstdc++-v3/include/bits/stl_iterator.h | 4 ++++
libstdc++-v3/include/bits/version.def | 3 +++
libstdc++-v3/include/std/format | 4 ++++
libstdc++-v3/include/std/type_traits | 2 ++
4 files changed, 13 insertions(+)
diff --git a/libstdc++-v3/include/bits/stl_iterator.h
b/libstdc++-v3/include/bits/stl_iterator.h
index 747e4a44c27..f5f2abbb8b6 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -2131,6 +2131,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return *this;
}
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3953. iter_move for common_iterator and ... should return decltype(auto)
constexpr decltype(auto)
operator++(int)
{
@@ -2454,6 +2456,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return *this;
}
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3953. iter_move for ... and counted_iterator should return
decltype(auto)
constexpr decltype(auto)
operator++(int)
{
diff --git a/libstdc++-v3/include/bits/version.def
b/libstdc++-v3/include/bits/version.def
index 81484ad2f75..d14d4f4ef25 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -89,6 +89,9 @@ ftms = {
};
ftms = {
+ // 202106 P0401R6 Providing size feedback in the Allocator interface
+ // 202302 P2652R2 Disallow user specialization of allocator_traits
+ // LWG3887 Version macro for allocate_at_least
name = allocate_at_least;
values = {
v = 202302;
diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index dd275b6b817..8e7702d76df 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -5888,6 +5888,8 @@ namespace __format
constexpr void
_M_parse()
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3892. Incorrect formatting of nested ranges and tuples
basic_format_parse_context<_CharT> __pc({});
if (_M_formatter.parse(__pc) != __pc.end())
__format::__failed_to_parse_format_spec();
@@ -6174,6 +6176,8 @@ namespace __format
auto __parse_val = [&](_String_view __nfs = _String_view())
{
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3892. Incorrect formatting of nested ranges and tuples
basic_format_parse_context<_CharT> __npc(__nfs);
if (_M_fval.parse(__npc) != __npc.end())
__format::__failed_to_parse_format_spec();
diff --git a/libstdc++-v3/include/std/type_traits
b/libstdc++-v3/include/std/type_traits
index c56fae4a5bf..2b3f10016a2 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -2849,6 +2849,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{
using _Argval = __remove_cvref_t<_Arg>;
using _MemPtr = _Res _Class::*;
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
+ // 3655. The INVOKE operation and union types
using type = typename __conditional_t<__or_<is_same<_Argval, _Class>,
is_base_of<_Class, _Argval>>::value,
__result_of_memobj_ref<_MemPtr, _Arg>,
--
2.54.0