From 1c1e878be75d9fae097dab56766ce51229f68477 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Fri, 1 Aug 2014 02:40:25 -0700 Subject: [PATCH] Add some casts for inline assembly atomics And remove an unnecessary void cast --- OpenAL32/alError.c | 2 +- include/atomic.h | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/OpenAL32/alError.c b/OpenAL32/alError.c index 875e118a..9369af56 100644 --- a/OpenAL32/alError.c +++ b/OpenAL32/alError.c @@ -46,7 +46,7 @@ ALvoid alSetError(ALCcontext *Context, ALenum errorCode) raise(SIGTRAP); #endif } - (void)ATOMIC_COMPARE_EXCHANGE_STRONG(ALenum, &Context->LastError, &curerr, errorCode); + ATOMIC_COMPARE_EXCHANGE_STRONG(ALenum, &Context->LastError, &curerr, errorCode); } AL_API ALenum AL_APIENTRY alGetError(void) diff --git a/include/atomic.h b/include/atomic.h index 5fd76252..3cde46df 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -153,14 +153,14 @@ inline void *ExchangePtr(XchgPtr *dest, void *newval) static_assert(sizeof(T)==4, "Type "#T" has incorrect size!"); \ static_assert(sizeof(T)==sizeof((_val)->value), "Type "#T" has incorrect size!"); \ T _r; \ - WRAP_ADD(_r, &(_val)->value, (_incr)); \ + WRAP_ADD(_r, &(_val)->value, (T)(_incr)); \ _r; \ }) #define ATOMIC_SUB(T, _val, _decr) __extension__({ \ static_assert(sizeof(T)==4, "Type "#T" has incorrect size!"); \ static_assert(sizeof(T)==sizeof((_val)->value), "Type "#T" has incorrect size!"); \ T _r; \ - WRAP_SUB(_r, &(_val)->value, (_decr)); \ + WRAP_SUB(_r, &(_val)->value, (T)(_decr)); \ _r; \ }) @@ -168,16 +168,16 @@ inline void *ExchangePtr(XchgPtr *dest, void *newval) static_assert(sizeof(T)==4 || sizeof(T)==8, "Type "#T" has incorrect size!"); \ static_assert(sizeof(T)==sizeof((_val)->value), "Type "#T" has incorrect size!"); \ T _r; \ - if(sizeof(T) == 4) WRAP_XCHG("l", _r, &(_val)->value, (_newval)); \ - else if(sizeof(T) == 8) WRAP_XCHG("q", _r, &(_val)->value, (_newval)); \ + if(sizeof(T) == 4) WRAP_XCHG("l", _r, &(_val)->value, (T)(_newval)); \ + else if(sizeof(T) == 8) WRAP_XCHG("q", _r, &(_val)->value, (T)(_newval)); \ _r; \ }) #define ATOMIC_COMPARE_EXCHANGE_STRONG(T, _val, _oldval, _newval) __extension__({ \ static_assert(sizeof(T)==4 || sizeof(T)==8, "Type "#T" has incorrect size!"); \ static_assert(sizeof(T)==sizeof((_val)->value), "Type "#T" has incorrect size!"); \ __typeof(*_oldval) _old = *(_oldval); \ - if(sizeof(T) == 4) WRAP_CMPXCHG("l", *(_oldval), &(_val)->value, _old, (_newval)); \ - else if(sizeof(T) == 8) WRAP_CMPXCHG("q", *(_oldval), &(_val)->value, _old, (_newval)); \ + if(sizeof(T) == 4) WRAP_CMPXCHG("l", *(_oldval), &(_val)->value, _old, (T)(_newval)); \ + else if(sizeof(T) == 8) WRAP_CMPXCHG("q", *(_oldval), &(_val)->value, _old, (T)(_newval)); \ *(_oldval) == _old; \ }) -- 2.11.4.GIT