+++ /dev/null
---- 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
--- /dev/null
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -265,7 +265,7 @@ message(STATUS "Wrote ${PROJECT_BINARY_D
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/json_config.h.in ${PROJECT_BINARY_DIR}/json_config.h)
+ message(STATUS "Wrote ${PROJECT_BINARY_DIR}/json_config.h")
+
+-if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
++if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
+ if ("${DISABLE_WERROR}" STREQUAL "OFF")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")