#ifdef __APPLE__
# ifdef __GNUC__
-# if ( __GNUC__ >= 3 ) && ( __GNUC_MINOR__ >= 3 )
+# if ( __GNUC__ > 3 ) || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 3 )
inline int (isnan)(double r) { return !(r <= 0 || r >= 0); }
# else
// any C++ header file undefines isinf and isnan