template<typename _Tp>
_GLIBCXX_ALWAYS_INLINE bool
__compare_exchange(_Tp& __val, _Val<_Tp>& __e, _Val<_Tp>& __i,
- bool __weak, memory_order __s, memory_order __f) noexcept
+ bool __is_weak,
+ memory_order __s, memory_order __f) noexcept
{
__glibcxx_assert(__is_valid_cmpexch_failure_order(__f));
__atomic_impl::__clear_padding(*__exp);
if (__atomic_compare_exchange(std::__addressof(__val), __exp,
__atomic_impl::__clear_padding(__i),
- __weak, int(__s), int(__f)))
+ __is_weak, int(__s), int(__f)))
return true;
__builtin_memcpy(std::__addressof(__e), __exp, sizeof(_Vp));
return false;
return __atomic_compare_exchange(std::__addressof(__val),
std::__addressof(__e),
std::__addressof(__i),
- __weak, int(__s), int(__f));
+ __is_weak, int(__s), int(__f));
}
} // namespace __atomic_impl
// This clashes with newlib so don't use it.
# define __lockable cannot be used as an identifier
+#ifndef __APPLE__
+#define __weak predefined qualifier on darwin
+#define __strong predefined qualifier on darwin
+#endif
// Common template parameter names
#define OutputIterator OutputIterator is not a reserved name