From: Shane Lontis Date: Wed, 18 Sep 2019 05:26:19 +0000 (+1000) Subject: Fix Compiler error/warning for windows icl build X-Git-Tag: openssl-3.0.0-alpha1~1336 X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff_plain;h=ecae0575103918868b29cc11aa35e3b91fe7dcc8 Fix Compiler error/warning for windows icl build Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/9907) --- diff --git a/include/internal/refcount.h b/include/internal/refcount.h index eddf12415f..1619b28932 100644 --- a/include/internal/refcount.h +++ b/include/internal/refcount.h @@ -73,6 +73,21 @@ static __inline__ int CRYPTO_DOWN_REF(int *val, int *ret, void *lock) __atomic_thread_fence(__ATOMIC_ACQUIRE); return 1; } +# elif defined(__ICL) && defined(_WIN32) +# define HAVE_ATOMICS 1 +typedef volatile int CRYPTO_REF_COUNT; + +static __inline int CRYPTO_UP_REF(volatile int *val, int *ret, void *lock) +{ + *ret = _InterlockedExchangeAdd((void *)val, 1) + 1; + return 1; +} + +static __inline int CRYPTO_DOWN_REF(volatile int *val, int *ret, void *lock) +{ + *ret = _InterlockedExchangeAdd((void *)val, -1) - 1; + return 1; +} # elif defined(_MSC_VER) && _MSC_VER>=1200