On 11/20/2013 01:15 PM, Jonas 'Sortie' Termansen wrote: > POSIX 2008 mandates fpclassify, FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL,
And C99. > and FP_ZERO are all macros and we can therefore detect them through simple > preprocessor conditionals on compliant platforms. This avoids further growth > of the current preprocessor list of platforms that has fpclassify. I retained > the current platform list as I could not confirm whether all the currently > supported platforms correctly declare all these as macros. > --- > src/mesa/main/querymatrix.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/main/querymatrix.c b/src/mesa/main/querymatrix.c > index 19a8e92..4507343 100644 > --- a/src/mesa/main/querymatrix.c > +++ b/src/mesa/main/querymatrix.c > @@ -37,7 +37,12 @@ > #define INT_TO_FIXED(x) ((GLfixed) ((x) << 16)) > #define FLOAT_TO_FIXED(x) ((GLfixed) ((x) * 65536.0)) > > -#if defined(_MSC_VER) > +#if defined(fpclassify) && defined(FP_INFINITE) && defined(FP_NAN) && \ > + defined(FP_NORMAL) && defined(FP_SUBNORMAL) && defined(FP_ZERO) > + > +/* fpclassify is available. */ > + > +#elif defined(_MSC_VER) > #if _MSC_VER < 1800 /* 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 > Shouldn't the other /* fpclassify is available. */ block (below) get removed? I think we could also get rid of the '#if _MSC_VER < 1800' check as well, since the new '#if defined' block will already catch that case. That should probably be a separate patch, however. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev