From fa68a7378895af9d62914bf42aef723553d24c6f Mon Sep 17 00:00:00 2001
From: Cameron Cawley <[EMAIL REDACTED]>
Date: Mon, 19 Jan 2026 17:01:13 +0000
Subject: [PATCH] Fix compiler warning in MSVC ARM64 builds
---
src/atomic/SDL_spinlock.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/atomic/SDL_spinlock.c b/src/atomic/SDL_spinlock.c
index 1eb8e3583d10b..591e6bb8b76c1 100644
--- a/src/atomic/SDL_spinlock.c
+++ b/src/atomic/SDL_spinlock.c
@@ -51,7 +51,8 @@ bool SDL_TryLockSpinlock(SDL_SpinLock *lock)
return __sync_lock_test_and_set(lock, 1) == 0;
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
- return _InterlockedExchange_acq(lock, 1) == 0;
+ SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long));
+ return _InterlockedExchange_acq((long *)lock, 1) == 0;
#elif defined(_MSC_VER)
SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long));
@@ -167,7 +168,8 @@ void SDL_UnlockSpinlock(SDL_SpinLock *lock)
__sync_lock_release(lock);
#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))
- _InterlockedExchange_rel(lock, 0);
+ SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long));
+ _InterlockedExchange_rel((long *)lock, 0);
#elif defined(_MSC_VER)
_ReadWriteBarrier();