[gcc r17-2192] libstdc++: Add _GLIBCXX_RESOLVE_LIB_DEFECTS comments for 2023 issues.
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Tue Jul 7 12:28:29 GMT 2026
https://gcc.gnu.org/g:0487ae7658d2b9dfc82aeeb1c52ff6f034caa37b
commit r17-2192-g0487ae7658d2b9dfc82aeeb1c52ff6f034caa37b
Author: Tomasz Kamiński <tkaminsk@redhat.com>
Date: Mon Jul 6 16:35:46 2026 +0200
libstdc++: Add _GLIBCXX_RESOLVE_LIB_DEFECTS comments for 2023 issues.
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.
Diff:
---
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 747e4a44c274..f5f2abbb8b6b 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 81484ad2f75d..d14d4f4ef25f 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 dd275b6b8173..8e7702d76df6 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 c56fae4a5bf5..2b3f10016a29 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>,
More information about the Libstdc++-cvs
mailing list