src: restrict upx::atomic_exchange to pointer-size for now

This commit is contained in:
Markus F.X.J. Oberhumer
2024-05-08 23:08:33 +02:00
parent 72c9769953
commit c04c685469
3 changed files with 30 additions and 36 deletions
+3
View File
@@ -204,6 +204,9 @@ forceinline std::atomic<T> *ptr_std_atomic_cast(T *ptr) noexcept {
// atomic_exchange
template <class T>
forceinline T atomic_exchange(T *ptr, T new_value) noexcept {
#if 1
static_assert(sizeof(T) == sizeof(void *)); // UPX convention: restrict to pointer-size for now
#endif
static_assert(std::is_standard_layout_v<T>);
static_assert(std::is_trivially_copyable_v<T>);
#if !(WITH_THREADS)