diff options
author | robot-contrib <robot-contrib@yandex-team.com> | 2024-08-21 09:13:01 +0300 |
---|---|---|
committer | robot-contrib <robot-contrib@yandex-team.com> | 2024-08-21 09:23:27 +0300 |
commit | e739483c2a7f32e2703168bf13ce952aa4ffb2ae (patch) | |
tree | 771a5c19317754c9498288c536f275e6793e814b /contrib | |
parent | 038539e9e87fc8aa077180e17bd90fa49c6cfe0b (diff) | |
download | ydb-e739483c2a7f32e2703168bf13ce952aa4ffb2ae.tar.gz |
Update contrib/restricted/boost/move to 1.86.0
b1ffaaff544bd1ab1af72314e524d49221a5f67e
Diffstat (limited to 'contrib')
4 files changed, 17 insertions, 5 deletions
diff --git a/contrib/restricted/boost/move/include/boost/move/detail/config_begin.hpp b/contrib/restricted/boost/move/include/boost/move/detail/config_begin.hpp index 4e95a4aba7..ded0050183 100644 --- a/contrib/restricted/boost/move/include/boost/move/detail/config_begin.hpp +++ b/contrib/restricted/boost/move/include/boost/move/detail/config_begin.hpp @@ -16,7 +16,6 @@ # pragma warning (disable : 4619) // there is no warning number 'XXXX' # pragma warning (disable : 4324) // structure was padded due to __declspec(align()) # pragma warning (disable : 4675) // "function": resolved overload was found by argument-dependent lookup -# pragma warning (disable : 4996) // "function": was declared deprecated (_CRT_SECURE_NO_DEPRECATE/_SCL_SECURE_NO_WARNINGS) # pragma warning (disable : 4714) // "function": marked as __forceinline not inlined # pragma warning (disable : 4127) // conditional expression is constant #endif diff --git a/contrib/restricted/boost/move/include/boost/move/detail/type_traits.hpp b/contrib/restricted/boost/move/include/boost/move/detail/type_traits.hpp index 84dcbceb73..de8b2eb6da 100644 --- a/contrib/restricted/boost/move/include/boost/move/detail/type_traits.hpp +++ b/contrib/restricted/boost/move/include/boost/move/detail/type_traits.hpp @@ -1197,12 +1197,20 @@ struct aligned_struct; template <> struct aligned_struct<1> { char data; }; template <> struct aligned_struct<2> { short data; }; template <> struct aligned_struct<4> { int data; }; -template <> struct aligned_struct<8> { double data; }; +//8 byte alignment does not propely work in x86 if attribute is not used. +//If a user declares a variable with 8 byte alignment, such as a double +//the compiler will not realign the stack. +// +//If _declspec(align) is used MSVC will realign the stack. +// +//Disabled specialization +//template <> struct aligned_struct<8> { double data; }; #define BOOST_MOVE_ALIGNED_STRUCT(x) \ template <> struct aligned_struct<x> { \ __declspec(align(x)) char data; \ } +BOOST_MOVE_ALIGNED_STRUCT(8); BOOST_MOVE_ALIGNED_STRUCT(16); BOOST_MOVE_ALIGNED_STRUCT(32); BOOST_MOVE_ALIGNED_STRUCT(64); diff --git a/contrib/restricted/boost/move/include/boost/move/detail/workaround.hpp b/contrib/restricted/boost/move/include/boost/move/detail/workaround.hpp index 5edfcee1f2..f12e93315e 100644 --- a/contrib/restricted/boost/move/include/boost/move/detail/workaround.hpp +++ b/contrib/restricted/boost/move/include/boost/move/detail/workaround.hpp @@ -147,5 +147,10 @@ template<unsigned> struct static_assert_test {}; #define BOOST_MOVE_INTRINSIC_CAST BOOST_MOVE_FORCEINLINE #endif -#endif //#ifndef BOOST_MOVE_DETAIL_WORKAROUND_HPP +#if defined(__has_builtin) +#if __has_builtin(__builtin_launder) + #define BOOST_MOVE_HAS_BUILTIN_LAUNDER +#endif +#endif +#endif //#ifndef BOOST_MOVE_DETAIL_WORKAROUND_HPP diff --git a/contrib/restricted/boost/move/ya.make b/contrib/restricted/boost/move/ya.make index a78230607b..0821343e3e 100644 --- a/contrib/restricted/boost/move/ya.make +++ b/contrib/restricted/boost/move/ya.make @@ -9,9 +9,9 @@ LICENSE( LICENSE_TEXTS(.yandex_meta/licenses.list.txt) -VERSION(1.85.0) +VERSION(1.86.0) -ORIGINAL_SOURCE(https://github.com/boostorg/move/archive/boost-1.85.0.tar.gz) +ORIGINAL_SOURCE(https://github.com/boostorg/move/archive/boost-1.86.0.tar.gz) PEERDIR( contrib/restricted/boost/config |