forked from AuroraMiddleware/gtk
fallback-c89: Try to make isnanf work
This commit is contained in:
parent
b766707f28
commit
c5829bd0e2
@ -20,6 +20,7 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <float.h>
|
||||
|
||||
/* Workaround for round() for non-GCC/non-C99 compilers */
|
||||
#ifndef HAVE_ROUND
|
||||
@ -93,26 +94,21 @@ isnan (double x)
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_DECL_ISNANF
|
||||
#if 1
|
||||
#define isnanf(x) isnan(x)
|
||||
#else
|
||||
/* it seems of the supported compilers only
|
||||
* MSVC does not have isnanf(), but it does
|
||||
* have _isnanf() which does the same as isnanf()
|
||||
*/
|
||||
#ifdef _MSC_VER
|
||||
static inline gboolean
|
||||
isnanf (float x)
|
||||
{
|
||||
return _isnanf (x);
|
||||
}
|
||||
#elif defined (__GNUC__)
|
||||
#if defined (__GNUC__)
|
||||
/* gcc has an intern function that it warns about when
|
||||
* using -Wshadow but no header properly declares it,
|
||||
* so we do it instead.
|
||||
*/
|
||||
extern int isnanf (float x);
|
||||
#endif
|
||||
#else
|
||||
static inline int
|
||||
isnanf (float x)
|
||||
{
|
||||
/* Either use the C99 type infering macro, or the fallback from above.
|
||||
* MSVC has _isnanf, but only on x64
|
||||
*/
|
||||
return isnan (x);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user