|  | @@ -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));
 |