SDL: Fixed clang Windows build

From cd97e3a83310f0aa5f42813cae3d64c9b875f43c Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 8 Jul 2023 14:10:08 -0700
Subject: [PATCH] Fixed clang Windows build

---
 src/joystick/windows/SDL_rawinputjoystick.c     | 7 +++++++
 src/joystick/windows/SDL_windows_gaming_input.c | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/src/joystick/windows/SDL_rawinputjoystick.c b/src/joystick/windows/SDL_rawinputjoystick.c
index 3c296b93ac6a..dc9d7c3653de 100644
--- a/src/joystick/windows/SDL_rawinputjoystick.c
+++ b/src/joystick/windows/SDL_rawinputjoystick.c
@@ -499,7 +499,10 @@ static HRESULT STDMETHODCALLTYPE IEventHandler_CGamepadVtbl_InvokeRemoved(__FIEv
     return S_OK;
 }
 
+#ifdef _MSC_VER
+#pragma warning(push)
 #pragma warning(disable : 4028) /* formal parameter 3 different from declaration, when using older buggy WGI headers */
+#endif
 
 static __FIEventHandler_1_Windows__CGaming__CInput__CGamepadVtbl gamepad_added_vtbl = {
     IEventHandler_CGamepadVtbl_QueryInterface,
@@ -523,6 +526,10 @@ static GamepadDelegate gamepad_removed = {
     { 1 }
 };
 
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
 static void RAWINPUT_MarkWindowsGamingInputSlotUsed(WindowsGamingInputGamepadState *wgi_slot, RAWINPUT_DeviceContext *ctx)
 {
     wgi_slot->used = SDL_TRUE;
diff --git a/src/joystick/windows/SDL_windows_gaming_input.c b/src/joystick/windows/SDL_windows_gaming_input.c
index 210395a7b088..68c5e3714012 100644
--- a/src/joystick/windows/SDL_windows_gaming_input.c
+++ b/src/joystick/windows/SDL_windows_gaming_input.c
@@ -567,7 +567,10 @@ static HRESULT STDMETHODCALLTYPE IEventHandler_CRawGameControllerVtbl_InvokeRemo
     return S_OK;
 }
 
+#ifdef _MSC_VER
+#pragma warning(push)
 #pragma warning(disable : 4028) /* formal parameter 3 different from declaration, when using older buggy WGI headers */
+#endif
 
 static __FIEventHandler_1_Windows__CGaming__CInput__CRawGameControllerVtbl controller_added_vtbl = {
     IEventHandler_CRawGameControllerVtbl_QueryInterface,
@@ -591,6 +594,10 @@ static RawGameControllerDelegate controller_removed = {
     { 1 }
 };
 
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
 static int WGI_JoystickInit(void)
 {
     HRESULT hr;