summaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxx/include/__bit_reference
diff options
context:
space:
mode:
authormikhnenko <[email protected]>2025-02-01 14:09:02 +0300
committermikhnenko <[email protected]>2025-02-01 14:33:00 +0300
commit5ef4578b282eef07d27f8d0cb56d2c1aac00042c (patch)
tree1fbf9195e0b8c4e47bd7f84aba089ba3c13474f3 /contrib/libs/cxxsupp/libcxx/include/__bit_reference
parent6be27609101cab343f3fedd9204990737b6ecddd (diff)
Update libcxx to 2 Apr 2024 239236b8c2154aa49e98bc7ed774a7d2712edf50
``` [libc++] Remove pair dependency (#85621) [libc++] Simplify the implementation of <stddef.h> (#86843) Update the "Current Status" section of the website to be current. (#84507) [libc++] Optimize the two range overload of mismatch (#86853) [libc++] Refactor __tuple_like and __pair_like (#85206) [libc++][test] Improves src include paths. (#86864) [libc++] Document guidelines for applying [[nodiscard]] (#84000) [libc++] Optimize the std::mismatch tail (#83440) [libc++] Remove <queue> and <stack> includes from <format> (#85520) [libc++] Switch FreeBSD to C++26 (#86658) [libc++] Fix one case in saturate_cast.pass.cpp for 64-bit on z/OS (#86724) [libc++][test] Remove tests that testing std::variant<T&> (#84222) [libc++] <experimental/simd> Reduce types for template parameter U in tests (#83781) [libc++] Switch FreeBSD CI job to Clang 17 (#86320) [libc++][CI] Updates the documentation. (#85264) [libc++][format] Adds ABI tags to inline constexpr variables. (#86293) [libc++][test] Fix race condition in condition_variable_any tests (#84788) [libc++] Vectorize mismatch (#73255) [libc++] Don't push and pop extensions diagnostics when using clang modules (#85917) [libc++][ranges] use `static operator()` for C++23 ranges (#86052) [libc++] Implement LWG3528 (`make_from_tuple` can perform (the equivalent of) a C-style cast) (#85263) [libc++] Remove macros for keeping std::allocator members and void specialization after C++20 (#85806) [libc++] Deprecates std::errc constants. (#80542) [libcxx] [cmake] Fix cmake_path(ABSOLUTE_PATH) for empty CMAKE_INSTALL_PREFIX [libc++][CI] Reenables the module tests. (#85799) [libc++][ranges] remove `__workaround_52970` (#85683) [libc++][ranges] LWG3715: `view_interface::empty` is overconstrained (#85004) [libcxx] [modules] Fix relative paths with absolute LIBCXX_INSTALL_MODULES_DIR (#85756) [libc++][format] Fixes nested concept evaluation. (#85548) [libc++][CMake] Removes LIBCXX_ENABLE_CLANG_TIDY. (#85262) [libc++] Remove __unconstrained_reverse_iterator (#85582) [libc++] Simplify the implementation of remove_reference (#85207) [libcxx][test] Create feature host-can-create-symlinks (#82204) [libc++] Use __is_scoped_enum for the implementation of is_scoped_enum if it's available (#85580) [libc++] Add missing hide-from-ABI annotations on virtual functions (#85439) [libc++] Optimize ranges::fill{,_n} for vector<bool>::iterator (#84642) [libc++] Add <locale> include in <chrono> (#85521) [libc++] Remove <locale> includes from <format> (#85478) [libc++] P2602R2 Poison Pills are Too Toxic (#74534) [libc++] Fixes run-buildbot-container. (#84644) [libc++] Add [[nodiscard]] to static numeric limit functions (#83748) Rework Modules CMake to be (more) idiomatic. (#84936) [libc++] Enables TZDB tests. (#82108) [libc++] Remove a few includes from <__functional/hash.h> (#83254) [libc++] Implements filebuf unbuffered. (#76629) [libc++][CI] Updates the version number of the latest release. [libc++] Remove <tuple> include from <__format/concepts.h> (#80214) [runtimes] Prefer -fvisibility-global-new-delete=force-hidden (#84917) [libc++] Fix tests on musl (#85085) [libc++] Remove _LIBCPP_ENABLE_NARROWING_CONVERSIONS_IN_VARIANT (#83928) [libcxx] Fix incorrect type in the has-1024-bit-atomics feature test (#84904) [libc++] Improves UB handling in ios_base destructor. (#76525) [libc++][CI] Installs tzdata package in Docker. (#84643) [libc++][TZDB] Fixes parsing interleaved rules. (#84808) [libc++][hardening] Check bounds on arithmetic in __bounded_iter (#78876) [libc++][hardening] Add iterator validity checks on unordered containers (#80230) [libc++][hardening] Reclassify string_view(ptr, len)'s size assertion (#79297) [libc++] Re-enable the clang_modules_include test for Objective-C++ (#66801) [libc++] Remove XFAIL for SIMD in optimized build (#84767) [libcxx] Update 128-bit-atomics feature test (#83841) [libc++] Only forward-declare ABI-functions in exception_ptr.h if they are meant to be used (#84707) [libc++][test] Don't include `test_format_context.h` in `parse.pass.cpp` (#83734) [libc++] Add missing include in test (#84579) [libc++] Remove <tuple> from <variant> (#83183) [RFC][libc++] Reworks clang-tidy selection. (#81362) [libc++] Remove <array> include from <span> (#83742) [libc++][format] Updates LWG3462 status. (#80550) [libc++][format] Update LWG3701 status. (#80545) [libc++][test] Fix MSVC warning C4127 in `array.cons/initialization.pass.cpp` (#79793) [libc++] Simplify the std::pair constructor overload set (#81448) [libc++] Allow the use of extensions in the implementation (#79532) [libc++] Don't build against libcxxrt by default on FreeBSD (#84484) Actually disable the module generation tests. [libc++] Disable module_std and module_std_compat tests [libc++] Enable availability based on the compiler instead of __has_extension (#84065) [libc++] Fixes time formatter test output for Linux on PowerPC (#75526) [libc++] Remove unused includes from __type_traits/is_convertible.h (#83747) ``` commit_hash:171258d93ab92f516dfb1789300677a164e63219
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/include/__bit_reference')
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__bit_reference59
1 files changed, 3 insertions, 56 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/include/__bit_reference b/contrib/libs/cxxsupp/libcxx/include/__bit_reference
index 3a5339b72dd..9579b9eaf70 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__bit_reference
+++ b/contrib/libs/cxxsupp/libcxx/include/__bit_reference
@@ -171,61 +171,6 @@ private:
__bit_const_reference& operator=(const __bit_const_reference&) = delete;
};
-// fill_n
-
-template <bool _FillVal, class _Cp>
-_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI void
-__fill_n(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n) {
- using _It = __bit_iterator<_Cp, false>;
- using __storage_type = typename _It::__storage_type;
-
- const int __bits_per_word = _It::__bits_per_word;
- // do first partial word
- if (__first.__ctz_ != 0) {
- __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);
- __storage_type __dn = std::min(__clz_f, __n);
- __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
- if (_FillVal)
- *__first.__seg_ |= __m;
- else
- *__first.__seg_ &= ~__m;
- __n -= __dn;
- ++__first.__seg_;
- }
- // do middle whole words
- __storage_type __nw = __n / __bits_per_word;
- std::fill_n(std::__to_address(__first.__seg_), __nw, _FillVal ? static_cast<__storage_type>(-1) : 0);
- __n -= __nw * __bits_per_word;
- // do last partial word
- if (__n > 0) {
- __first.__seg_ += __nw;
- __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
- if (_FillVal)
- *__first.__seg_ |= __m;
- else
- *__first.__seg_ &= ~__m;
- }
-}
-
-template <class _Cp>
-inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
-fill_n(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n, bool __value) {
- if (__n > 0) {
- if (__value)
- std::__fill_n<true>(__first, __n);
- else
- std::__fill_n<false>(__first, __n);
- }
-}
-
-// fill
-
-template <class _Cp>
-inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 void
-fill(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __last, bool __value) {
- std::fill_n(__first, static_cast<typename _Cp::size_type>(__last - __first), __value);
-}
-
// copy
template <class _Cp, bool _IsConst>
@@ -1007,8 +952,10 @@ private:
friend class __bit_iterator<_Cp, true>;
template <class _Dp>
friend struct __bit_array;
+
template <bool _FillVal, class _Dp>
- _LIBCPP_CONSTEXPR_SINCE_CXX20 friend void __fill_n(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n);
+ _LIBCPP_CONSTEXPR_SINCE_CXX20 friend void
+ __fill_n_bool(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n);
template <class _Dp, bool _IC>
_LIBCPP_CONSTEXPR_SINCE_CXX20 friend __bit_iterator<_Dp, false> __copy_aligned(