aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorrobot-contrib <robot-contrib@yandex-team.com>2022-12-29 09:59:51 +0300
committerrobot-contrib <robot-contrib@yandex-team.com>2022-12-29 09:59:51 +0300
commit52ef875ceda9eb2b459d197424c2eb18c16d43e4 (patch)
tree4e762c38b476593daf716bf168394e9c34ae5f0f /contrib
parent7b0332e82f5869f1a8b65179a8fcd3555bafd3e8 (diff)
downloadydb-52ef875ceda9eb2b459d197424c2eb18c16d43e4.tar.gz
Update contrib/restricted/boost/smart_ptr to 1.81.0
Diffstat (limited to 'contrib')
-rw-r--r--contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp13
-rw-r--r--contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/intrusive_ptr.hpp2
2 files changed, 12 insertions, 3 deletions
diff --git a/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp b/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp
index 8cd71791e4..d87b8441fc 100644
--- a/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp
+++ b/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp
@@ -30,7 +30,16 @@ class spinlock
{
public:
- unsigned char v_;
+ // `bool` alignment is required for Apple PPC32
+ // https://github.com/boostorg/smart_ptr/issues/105
+ // https://github.com/PurpleI2P/i2pd/issues/1726
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107590
+
+ union
+ {
+ unsigned char v_;
+ bool align_;
+ };
public:
@@ -80,6 +89,6 @@ public:
} // namespace detail
} // namespace boost
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
+#define BOOST_DETAIL_SPINLOCK_INIT {{0}}
#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ATOMIC_HPP_INCLUDED
diff --git a/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/intrusive_ptr.hpp b/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/intrusive_ptr.hpp
index ef682df96c..895a12fe9a 100644
--- a/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/intrusive_ptr.hpp
+++ b/contrib/restricted/boost/smart_ptr/include/boost/smart_ptr/intrusive_ptr.hpp
@@ -245,7 +245,7 @@ template<class T, class U> inline bool operator!=(T * a, intrusive_ptr<U> const
return a != b.get();
}
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
+#if defined(__GNUC__) && __GNUC__ == 2 && __GNUC_MINOR__ <= 96
// Resolve the ambiguity between our op!= and the one in rel_ops