فهرست منبع

__atomic_load_n() appears to be available in GCC 5 but not GCC 4

Sam Lantinga 8 سال پیش
والد
کامیت
7891e72dca
1فایلهای تغییر یافته به همراه2 افزوده شده و 4 حذف شده
  1. 2 4
      src/atomic/SDL_atomic.c

+ 2 - 4
src/atomic/SDL_atomic.c

@@ -211,8 +211,7 @@ SDL_AtomicAdd(SDL_atomic_t *a, int v)
 int
 SDL_AtomicGet(SDL_atomic_t *a)
 {
-/* !!! FIXME: __atomic_load_n is only in newer GCCs and Clang, I think, and apparently not on Android. This #ifdef should be more exact. */
-#if defined(HAVE_GCC_ATOMICS) && !defined(__ANDROID__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+#if defined(HAVE_GCC_ATOMICS) && (__GNUC__ >= 5)
     return __atomic_load_n(&a->value, __ATOMIC_SEQ_CST);
 #else
     int value;
@@ -226,8 +225,7 @@ SDL_AtomicGet(SDL_atomic_t *a)
 void *
 SDL_AtomicGetPtr(void **a)
 {
-/* !!! FIXME: __atomic_load_n is only in newer GCCs and Clang, I think, and apparently not on Android. This #ifdef should be more exact. */
-#if defined(HAVE_GCC_ATOMICS) && !defined(__ANDROID__) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
+#if defined(HAVE_GCC_ATOMICS) && (__GNUC__ >= 5)
     return __atomic_load_n(a, __ATOMIC_SEQ_CST);
 #else
     void *value;