|
@@ -1253,7 +1253,7 @@ mg_atomic_inc(volatile int *addr)
|
|
|
* (volatile unsigned int *) or (volatile LONG *),
|
|
|
* so whatever you use, the other SDK is likely to raise a warning. */
|
|
|
ret = InterlockedIncrement((volatile long *)addr);
|
|
|
-#elif defined(__GNUC__)
|
|
|
+#elif defined(__GNUC__) && (__GNUC__ > 5 || (__GNUC__ == 4 && __GNUC_MINOR__ > 0))
|
|
|
ret = __sync_add_and_fetch(addr, 1);
|
|
|
#else
|
|
|
ret = (++(*addr));
|
|
@@ -1270,7 +1270,7 @@ mg_atomic_dec(volatile int *addr)
|
|
|
* (volatile unsigned int *) or (volatile LONG *),
|
|
|
* so whatever you use, the other SDK is likely to raise a warning. */
|
|
|
ret = InterlockedDecrement((volatile long *)addr);
|
|
|
-#elif defined(__GNUC__)
|
|
|
+#elif defined(__GNUC__) && (__GNUC__ > 5 || (__GNUC__ == 4 && __GNUC_MINOR__ > 0))
|
|
|
ret = __sync_sub_and_fetch(addr, 1);
|
|
|
#else
|
|
|
ret = (--(*addr));
|