Use __has_extension and __has_feature is a way compatible with old gcc
diff --git a/src/pthreadpool.c b/src/pthreadpool.c
index 5eb7972..e9dbd18 100644
--- a/src/pthreadpool.c
+++ b/src/pthreadpool.c
@@ -15,12 +15,16 @@
 #define PTHREADPOOL_CACHELINE_SIZE 64
 #define PTHREADPOOL_CACHELINE_ALIGNED __attribute__((__aligned__(PTHREADPOOL_CACHELINE_SIZE)))
 
-#if (defined(__clang__) && (__has_extension(c_static_assert) || __has_feature(c_static_assert))) || \
-	(defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)))
-	/* Static assert is supported by gcc >= 4.6 and modern clang */
+#if defined(__clang__)
+	#if __has_extension(c_static_assert) || __has_feature(c_static_assert)
+		#define PTHREADPOOL_STATIC_ASSERT(predicate, message) _Static_assert((predicate), message)
+	#else
+		#define PTHREADPOOL_STATIC_ASSERT(predicate, message)
+	#endif
+#elif defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4) && (__GNUC_MINOR__ >= 6))
+	/* Static assert is supported by gcc >= 4.6 */
 	#define PTHREADPOOL_STATIC_ASSERT(predicate, message) _Static_assert((predicate), message)
 #else
-	/* Dummy declaration for legacy compilers */
 	#define PTHREADPOOL_STATIC_ASSERT(predicate, message)
 #endif