[PATCH] include: Fix the signature of _InterlockedCompareExchange128

Martin Storsjo martin at martin.st
Sat Dec 19 15:56:15 CST 2020


Clang 12 doesn't consider a function with an inconsistent signature
as matching the intrinsic.

This fixes InterlockedCompareExchange128 with clang 12 in MSVC mode.

Signed-off-by: Martin Storsjo <martin at martin.st>
---
 include/winnt.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/winnt.h b/include/winnt.h
index 01402d211fe..6d76e5e49e5 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -6923,7 +6923,7 @@ static inline BOOLEAN BitScanReverse(DWORD *index, DWORD mask)
 #if defined(_MSC_VER)
 
 #define InterlockedCompareExchange128 _InterlockedCompareExchange128
-static inline unsigned char _InterlockedCompareExchange128(__int64 *dest, __int64 xchg_high, __int64 xchg_low, __int64 *compare);
+unsigned char _InterlockedCompareExchange128(volatile __int64 *dest, __int64 xchg_high, __int64 xchg_low, __int64 *compare);
 #pragma intrinsic(_InterlockedCompareExchange128)
 
 #elif defined(__x86_64__)
-- 
2.17.1




More information about the wine-devel mailing list