--- a/math_compat.h
+++ b/math_compat.h
@@ -6,38 +6,9 @@
  * @brief Do not use, json-c internal, may be changed or removed at any time.
  */
 
-/* Define isnan, isinf, infinity and nan on Windows/MSVC */
-
-#ifndef HAVE_DECL_ISNAN
-#ifdef HAVE_DECL__ISNAN
-#include <float.h>
-#define isnan(x) _isnan(x)
-#else
-/* On platforms like AIX and "IBM i" we need to provide our own isnan */
-#define isnan(x) ((x) != (x))
-#endif
-#endif
-
-#ifndef HAVE_DECL_ISINF
-#ifdef HAVE_DECL__FINITE
-#include <float.h>
-#define isinf(x) (!_finite(x))
-#else
-#include <float.h>
-/* On platforms like AIX and "IBM i" we need to provide our own isinf */
-#define isinf(x) ((x) < -DBL_MAX || (x) > DBL_MAX)
-#endif
-#endif
-
-#ifndef HAVE_DECL_INFINITY
-#include <float.h>
-#define INFINITY (DBL_MAX + DBL_MAX)
-#define HAVE_DECL_INFINITY
-#endif
-
-#ifndef HAVE_DECL_NAN
-#define NAN (INFINITY - INFINITY)
-#define HAVE_DECL_NAN
-#endif
+#undef isnan
+#define isnan(x) __builtin_isnan(x)
+#undef isinf
+#define isinf(x) __builtin_isinf(x)
 
 #endif
