[libcxx-commits] [libcxx] [libc++] Increase `atomic_ref`'s required alignment for small types (PR #99654)

James Y Knight via libcxx-commits libcxx-commits at lists.llvm.org
Fri Jul 19 07:35:21 PDT 2024


================
@@ -95,10 +95,14 @@ struct __atomic_ref_base {
 
   friend struct __atomic_waitable_traits<__atomic_ref_base<_Tp>>;
 
+  // require types that are 1, 2, 4, 8, or 16 bytes in length to be aligned to at least their size to allow them to be
+  // used lock-free
+  static constexpr bool __min_alignement = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || (sizeof(_Tp) > 16) ? 0 : sizeof(_Tp);
----------------
jyknight wrote:

typo: `alignement` should be `alignment`.

https://github.com/llvm/llvm-project/pull/99654


More information about the libcxx-commits mailing list