summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFelix Janda <[email protected]>2015-01-23 17:57:15 +0100
committerJason Ekstrand <[email protected]>2015-01-26 14:07:57 -0800
commit2e2087a9ebe1f047dff217ab084972935eb52d1b (patch)
treef7a512d3bbafd41ac843e01852021b52a91706f7 /src
parentdd74369a0a501be7c772c926c62ab1185bf5996f (diff)
mesa: simplify detection of fpclassify
Fixes compilation with musl libc. Reviewed-by: Ian Romanick <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/main/querymatrix.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/mesa/main/querymatrix.c b/src/mesa/main/querymatrix.c
index eb36c760409..ef85175714d 100644
--- a/src/mesa/main/querymatrix.c
+++ b/src/mesa/main/querymatrix.c
@@ -37,8 +37,12 @@
#define INT_TO_FIXED(x) ((GLfixed) ((x) << 16))
#define FLOAT_TO_FIXED(x) ((GLfixed) ((x) * 65536.0))
-#if defined(_MSC_VER)
-#if _MSC_VER < 1800 /* Not required on VS2013 and above. */
+#if defined(fpclassify)
+/* ISO C99 says that fpclassify is a macro. Assume that any implementation
+ * of fpclassify, whether it's in a C99 compiler or not, will be a macro.
+ */
+#elif defined(_MSC_VER)
+/* Not required on VS2013 and above. */
/* Oddly, the fpclassify() function doesn't exist in such a form
* on MSVC. This is an implementation using slightly different
* lower-level Windows functions.
@@ -71,16 +75,8 @@ fpclassify(double x)
return FP_NAN;
}
}
-#endif /* _MSC_VER < 1800 */
-
-#elif defined(__APPLE__) || defined(__CYGWIN__) || defined(__FreeBSD__) || \
- defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
- (defined(__sun) && defined(__C99FEATURES__)) || defined(__MINGW32__) || \
- (defined(__sun) && defined(__GNUC__)) || defined(ANDROID) || defined(__HAIKU__)
-
-/* fpclassify is available. */
-#elif !defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < 600
+#else
enum {FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL}
fpclassify(double x)