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 --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index 747e4a4..f5f2abb 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -2131,6 +2131,8 @@ 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 @@ 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 81484ad..d14d4f4 100644 --- a/libstdc++-v3/include/bits/version.def +++ b/libstdc++-v3/include/bits/version.def
@@ -89,6 +89,9 @@ }; 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 dd275b6..8e7702d 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format
@@ -5888,6 +5888,8 @@ 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 @@ 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 c56fae4..2b3f100 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits
@@ -2849,6 +2849,8 @@ { 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>,