authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-06-25 01:46:31+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-06-25 01:46:47+02:00
log7ff1556502ac3ec134b3c15d8c70fa9f7845a983
treea89becb17ed98fc04deab7a22cfb3dd88de07743
parent5f78220dbe17133ece22e4f6a7e5e6337bfd7800
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

libcxx: update to LLVM 22.1.8


3 files changed, 18 insertions(+), 14 deletions(-)

lib/libcxx/include/__config+1-1
......@@ -30,7 +30,7 @@
3030// _LIBCPP_VERSION represents the version of libc++, which matches the version of LLVM.
3131// Given a LLVM release LLVM XX.YY.ZZ (e.g. LLVM 17.0.1 == 17.00.01), _LIBCPP_VERSION is
3232// defined to XXYYZZ.
33# define _LIBCPP_VERSION 220104
33# define _LIBCPP_VERSION 220108
3434
3535# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
3636# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)
lib/libcxx/include/__tree+2-2
......@@ -2026,8 +2026,8 @@ __tree<_Tp, _Compare, _Allocator>::__node_handle_insert_unique(const_iterator __
20262026template <class _Tp, class _Compare, class _Allocator>
20272027template <class _NodeHandle>
20282028_LIBCPP_HIDE_FROM_ABI _NodeHandle __tree<_Tp, _Compare, _Allocator>::__node_handle_extract(key_type const& __key) {
2029 iterator __it = find(__key);
2030 if (__it == end())
2029 iterator __it = __lower_bound_multi(__key);
2030 if (__it == end() || __value_comp_(__key, *__it))
20312031 return _NodeHandle();
20322032 return __node_handle_extract<_NodeHandle>(__it);
20332033}
lib/libcxx/include/optional+15-11
......@@ -828,6 +828,10 @@ private:
828828 template <class _Up>
829829 constexpr static bool __libcpp_opt_ref_ctor_deleted =
830830 is_lvalue_reference_v<_Tp> && reference_constructs_from_temporary_v<_Tp, _Up>;
831
832 template <class _Up>
833 constexpr static bool __ref_ctor_enabled =
834 is_lvalue_reference_v<_Tp> && !reference_constructs_from_temporary_v<_Tp, _Up>;
831835# endif
832836
833837 // LWG2756: conditionally explicit conversion from _Up
......@@ -935,7 +939,7 @@ public:
935939 template <class _Up, enable_if_t<_CheckOptionalLikeCtor<_Up, _Up const&>::template __enable_implicit<_Up>(), int> = 0>
936940 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 optional(const optional<_Up>& __v)
937941# if _LIBCPP_STD_VER >= 26
938 noexcept(is_lvalue_reference_v<_Tp> && is_nothrow_constructible_v<_Tp&, _Up&>)
942 noexcept(is_lvalue_reference_v<_Tp> && is_nothrow_constructible_v<_Tp&, const _Up&>)
939943# endif
940944 {
941945 this->__construct_from(__v);
......@@ -943,7 +947,7 @@ public:
943947 template <class _Up, enable_if_t<_CheckOptionalLikeCtor<_Up, _Up const&>::template __enable_explicit<_Up>(), int> = 0>
944948 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit optional(const optional<_Up>& __v)
945949# if _LIBCPP_STD_VER >= 26
946 noexcept(is_lvalue_reference_v<_Tp> && is_nothrow_constructible_v<_Tp&, _Up&>)
950 noexcept(is_lvalue_reference_v<_Tp> && is_nothrow_constructible_v<_Tp&, const _Up&>)
947951# endif
948952 {
949953 this->__construct_from(__v);
......@@ -981,25 +985,25 @@ public:
981985
982986 // optional(optional<U>& rhs)
983987 template <class _Up>
984 requires(!__libcpp_opt_ref_ctor_deleted<_Up>) && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
985 (!is_same_v<_Tp&, _Up>) && is_constructible_v<_Tp&, _Up&>
988 requires __ref_ctor_enabled<_Up&> && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) && (!is_same_v<_Tp&, _Up>) &&
989 is_constructible_v<_Tp&, _Up&>
986990 _LIBCPP_HIDE_FROM_ABI constexpr explicit(!is_convertible_v<_Up&, _Tp&>)
987991 optional(optional<_Up>& __rhs) noexcept(is_nothrow_constructible_v<_Tp&, _Up&>) {
988992 this->__construct_from(__rhs);
989993 }
990994
991995 template <class _Up>
992 requires __libcpp_opt_ref_ctor_deleted<_Up> && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
996 requires __libcpp_opt_ref_ctor_deleted<_Up&> && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
993997 (!is_same_v<_Tp&, _Up>) && is_constructible_v<_Tp&, _Up&>
994998 constexpr explicit optional(optional<_Up>& __rhs) noexcept = delete;
995999
9961000 // optional(const optional<U>&)
9971001 template <class _Up, enable_if_t<_CheckOptionalLikeCtor<_Up, _Up const&>::template __enable_implicit<_Up>(), int> = 0>
998 requires __libcpp_opt_ref_ctor_deleted<_Up>
1002 requires __libcpp_opt_ref_ctor_deleted<const _Up&>
9991003 optional(const optional<_Up>&) = delete;
10001004
10011005 template <class _Up, enable_if_t<_CheckOptionalLikeCtor<_Up, _Up const&>::template __enable_explicit<_Up>(), int> = 0>
1002 requires __libcpp_opt_ref_ctor_deleted<_Up>
1006 requires __libcpp_opt_ref_ctor_deleted<const _Up&>
10031007 explicit optional(const optional<_Up>&) = delete;
10041008
10051009 // optional(optional<U>&&)
......@@ -1013,16 +1017,16 @@ public:
10131017
10141018 // optional(const optional<U>&&)
10151019 template <class _Up>
1016 requires(!__libcpp_opt_ref_ctor_deleted<_Up>) && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
1017 (!is_same_v<_Tp&, _Up>) && is_constructible_v<_Tp&, _Up>
1020 requires __ref_ctor_enabled<const _Up> && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
1021 (!is_same_v<_Tp&, _Up>) && is_constructible_v<_Tp&, const _Up>
10181022 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit(!is_convertible_v<const _Up, _Tp&>)
10191023 optional(const optional<_Up>&& __v) noexcept(is_nothrow_constructible_v<_Tp&, const _Up>) {
10201024 this->__construct_from(std::move(__v));
10211025 }
10221026
10231027 template <class _Up>
1024 requires __libcpp_opt_ref_ctor_deleted<_Up> && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
1025 (!is_same_v<_Tp&, _Up>) && is_constructible_v<_Tp&, _Up>
1028 requires __libcpp_opt_ref_ctor_deleted<const _Up> && (!is_same_v<remove_cvref_t<_Tp>, optional<_Up>>) &&
1029 (!is_same_v<_Tp&, _Up>) && is_constructible_v<_Tp&, const _Up>
10261030 _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 optional(const optional<_Up>&& __v) noexcept = delete;
10271031# endif
10281032