[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