From 7f2dec46cade6340aeda9503ba70c4da266818b0 Mon Sep 17 00:00:00 2001 From: RipleyTom Date: Sat, 14 Feb 2026 14:16:37 +0100 Subject: [PATCH] Ignore gcc strict aliasing warnings on __sync_lock_test_and_set --- rpcs3/util/atomic.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rpcs3/util/atomic.hpp b/rpcs3/util/atomic.hpp index 4503eaac61..f77aad7825 100644 --- a/rpcs3/util/atomic.hpp +++ b/rpcs3/util/atomic.hpp @@ -1011,7 +1011,12 @@ struct atomic_storage : atomic_storage static inline T exchange(T& dest, T value) { __atomic_thread_fence(__ATOMIC_ACQ_REL); + // GCC has recently started thinking using this instrinsic is breaking strict aliasing rules + // TODO: remove if this ever get fixed in GCC + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" return std::bit_cast(__sync_lock_test_and_set(reinterpret_cast(&dest), std::bit_cast(value))); + #pragma GCC diagnostic pop } static inline void store(T& dest, T value)