diff options
author | mikhnenko <mikhnenko@yandex-team.com> | 2023-09-22 23:06:24 +0300 |
---|---|---|
committer | mikhnenko <mikhnenko@yandex-team.com> | 2023-09-22 23:25:13 +0300 |
commit | b8b31d1d500378c44c7e2d817c2b1b4f86524320 (patch) | |
tree | 6a482e8061d7b747a149dc6c8944b383d545846d /contrib/libs/cxxsupp | |
parent | 472fb95eccedb6f33c8a1b40919a0b9930178177 (diff) | |
download | ydb-b8b31d1d500378c44c7e2d817c2b1b4f86524320.tar.gz |
Udp libc++ for 2 days with fake-id changes
Diffstat (limited to 'contrib/libs/cxxsupp')
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/__algorithm/in_found_result.h | 49 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/__algorithm/min_max_result.h | 56 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/algorithm | 14 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/include/limits | 12 | ||||
-rw-r--r-- | contrib/libs/cxxsupp/libcxx/ya.make | 4 |
5 files changed, 130 insertions, 5 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_found_result.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_found_result.h new file mode 100644 index 0000000000..08ebf2fbcc --- /dev/null +++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_found_result.h @@ -0,0 +1,49 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP___ALGORITHM_IN_FOUND_RESULT_H +#define _LIBCPP___ALGORITHM_IN_FOUND_RESULT_H + +#include <__concepts/convertible_to.h> +#include <__config> +#include <__utility/move.h> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +#endif + +#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) + +_LIBCPP_BEGIN_NAMESPACE_STD + +namespace ranges { +template <class _I1> +struct in_found_result { + _LIBCPP_NO_UNIQUE_ADDRESS _I1 in; + bool found; + + template <class _I2> + requires convertible_to<const _I1&, _I2> + _LIBCPP_HIDE_FROM_ABI constexpr operator in_found_result<_I2>() const & { + return {in, found}; + } + + template <class _I2> + requires convertible_to<_I1, _I2> + _LIBCPP_HIDE_FROM_ABI constexpr operator in_found_result<_I2>() && { + return {std::move(in), found}; + } +}; +} // namespace ranges + +_LIBCPP_END_NAMESPACE_STD + +#endif // _LIBCPP_HAS_NO_CONCEPTS + +#endif // _LIBCPP___ALGORITHM_IN_FOUND_RESULT_H diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/min_max_result.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/min_max_result.h new file mode 100644 index 0000000000..1d56a741f5 --- /dev/null +++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/min_max_result.h @@ -0,0 +1,56 @@ +// -*- C++ -*- +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP___ALGORITHM_MIN_MAX_RESULT_H +#define _LIBCPP___ALGORITHM_MIN_MAX_RESULT_H + +#include <__concepts/convertible_to.h> +#include <__config> +#include <__utility/move.h> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +#endif + +_LIBCPP_PUSH_MACROS +#include <__undef_macros> + +_LIBCPP_BEGIN_NAMESPACE_STD + +#if!defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES) + +namespace ranges { + +template <class _T1> +struct min_max_result { + _LIBCPP_NO_UNIQUE_ADDRESS _T1 min; + _LIBCPP_NO_UNIQUE_ADDRESS _T1 max; + + template <class _T2> + requires convertible_to<const _T1&, _T2> + _LIBCPP_HIDE_FROM_ABI constexpr operator min_max_result<_T2>() const & { + return {min, max}; + } + + template <class _T2> + requires convertible_to<_T1, _T2> + _LIBCPP_HIDE_FROM_ABI constexpr operator min_max_result<_T2>() && { + return {std::move(min), std::move(max)}; + } +}; + +} // namespace ranges + +#endif + +_LIBCPP_END_NAMESPACE_STD + +_LIBCPP_POP_MACROS + +#endif diff --git a/contrib/libs/cxxsupp/libcxx/include/algorithm b/contrib/libs/cxxsupp/libcxx/include/algorithm index e4aba31567..cc37d71b24 100644 --- a/contrib/libs/cxxsupp/libcxx/include/algorithm +++ b/contrib/libs/cxxsupp/libcxx/include/algorithm @@ -20,17 +20,23 @@ namespace std namespace ranges { template <class I, class F> - struct in_fun_result; // since C++20 + struct in_fun_result; // since C++20 template <class I1, class I2> - struct in_in_result; // since C++20 + struct in_in_result; // since C++20 template <class I1, class I2, class O> - struct in_in_out_result; // since C++20 + struct in_in_out_result; // since C++20 template <class I, class O1, class O2> struct in_out_out_result; // since C++20 + template <class I1, class I2> + struct min_max_result; // since C++20 + + template <class I> + struct in_found_result; // since C++20 + template<forward_iterator I, sentinel_for<I> S, class Proj = identity, indirect_strict_weak_order<projected<I, Proj>> Comp = ranges::less> // since C++20 constexpr I min_element(I first, S last, Comp comp = {}, Proj proj = {}); @@ -716,6 +722,7 @@ template <class BidirectionalIterator, class Compare> #include <__algorithm/generate.h> #include <__algorithm/generate_n.h> #include <__algorithm/half_positive.h> +#include <__algorithm/in_found_result.h> #include <__algorithm/in_fun_result.h> #include <__algorithm/in_in_out_result.h> #include <__algorithm/in_in_result.h> @@ -738,6 +745,7 @@ template <class BidirectionalIterator, class Compare> #include <__algorithm/merge.h> #include <__algorithm/min.h> #include <__algorithm/min_element.h> +#include <__algorithm/min_max_result.h> #include <__algorithm/minmax.h> #include <__algorithm/minmax_element.h> #include <__algorithm/mismatch.h> diff --git a/contrib/libs/cxxsupp/libcxx/include/limits b/contrib/libs/cxxsupp/libcxx/include/limits index bf5d6d1fc4..5afef4bd7e 100644 --- a/contrib/libs/cxxsupp/libcxx/include/limits +++ b/contrib/libs/cxxsupp/libcxx/include/limits @@ -339,7 +339,11 @@ protected: static _LIBCPP_CONSTEXPR const bool is_modulo = false; static _LIBCPP_CONSTEXPR const bool traps = false; +#if (defined(__arm__) || defined(__aarch64__)) + static _LIBCPP_CONSTEXPR const bool tinyness_before = true; +#else static _LIBCPP_CONSTEXPR const bool tinyness_before = false; +#endif static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest; }; @@ -385,7 +389,11 @@ protected: static _LIBCPP_CONSTEXPR const bool is_modulo = false; static _LIBCPP_CONSTEXPR const bool traps = false; +#if (defined(__arm__) || defined(__aarch64__)) + static _LIBCPP_CONSTEXPR const bool tinyness_before = true; +#else static _LIBCPP_CONSTEXPR const bool tinyness_before = false; +#endif static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest; }; @@ -435,7 +443,11 @@ protected: static _LIBCPP_CONSTEXPR const bool is_modulo = false; static _LIBCPP_CONSTEXPR const bool traps = false; +#if (defined(__arm__) || defined(__aarch64__)) + static _LIBCPP_CONSTEXPR const bool tinyness_before = true; +#else static _LIBCPP_CONSTEXPR const bool tinyness_before = false; +#endif static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest; }; diff --git a/contrib/libs/cxxsupp/libcxx/ya.make b/contrib/libs/cxxsupp/libcxx/ya.make index 94d4a0e438..3c01766feb 100644 --- a/contrib/libs/cxxsupp/libcxx/ya.make +++ b/contrib/libs/cxxsupp/libcxx/ya.make @@ -11,9 +11,9 @@ LICENSE( LICENSE_TEXTS(.yandex_meta/licenses.list.txt) -VERSION(2022-02-18) +VERSION(2022-02-20) -ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/34313583331e5c8cb0d3df28efb6c34c428fd235.tar.gz) +ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/eb4c8608115c1c9af0fc8cb5b1e9f2bc960014ef.tar.gz) ADDINCL( GLOBAL contrib/libs/cxxsupp/libcxx/include |