Commit b55890d6 authored by Sergey Vojtovich's avatar Sergey Vojtovich Committed by Vlad Lesin

Cleanup isnan() portability checks

(cherry picked from commit 7ffd7fe9)
parent bd2b05df
...@@ -225,7 +225,6 @@ CHECK_SYMBOL_REPLACEMENT(S_IROTH _S_IREAD sys/stat.h) ...@@ -225,7 +225,6 @@ CHECK_SYMBOL_REPLACEMENT(S_IROTH _S_IREAD sys/stat.h)
CHECK_SYMBOL_REPLACEMENT(S_IFIFO _S_IFIFO sys/stat.h) CHECK_SYMBOL_REPLACEMENT(S_IFIFO _S_IFIFO sys/stat.h)
CHECK_SYMBOL_REPLACEMENT(SIGQUIT SIGTERM signal.h) CHECK_SYMBOL_REPLACEMENT(SIGQUIT SIGTERM signal.h)
CHECK_SYMBOL_REPLACEMENT(SIGPIPE SIGINT signal.h) CHECK_SYMBOL_REPLACEMENT(SIGPIPE SIGINT signal.h)
CHECK_SYMBOL_REPLACEMENT(isnan _isnan "math.h;float.h")
CHECK_SYMBOL_REPLACEMENT(finite _finite "math;float.h") CHECK_SYMBOL_REPLACEMENT(finite _finite "math;float.h")
CHECK_FUNCTION_REPLACEMENT(popen _popen) CHECK_FUNCTION_REPLACEMENT(popen _popen)
CHECK_FUNCTION_REPLACEMENT(pclose _pclose) CHECK_FUNCTION_REPLACEMENT(pclose _pclose)
......
...@@ -163,7 +163,6 @@ ...@@ -163,7 +163,6 @@
#cmakedefine HAVE_IN_ADDR_T 1 #cmakedefine HAVE_IN_ADDR_T 1
#cmakedefine HAVE_INITGROUPS 1 #cmakedefine HAVE_INITGROUPS 1
#cmakedefine HAVE_ISNAN 1 #cmakedefine HAVE_ISNAN 1
#cmakedefine HAVE_ISINF 1
#cmakedefine HAVE_LARGE_PAGE_OPTION 1 #cmakedefine HAVE_LARGE_PAGE_OPTION 1
#cmakedefine HAVE_LDIV 1 #cmakedefine HAVE_LDIV 1
#cmakedefine HAVE_LRAND48 1 #cmakedefine HAVE_LRAND48 1
...@@ -423,7 +422,6 @@ ...@@ -423,7 +422,6 @@
#cmakedefine mode_t @mode_t@ #cmakedefine mode_t @mode_t@
#cmakedefine SIGQUIT @SIGQUIT@ #cmakedefine SIGQUIT @SIGQUIT@
#cmakedefine SIGPIPE @SIGPIPE@ #cmakedefine SIGPIPE @SIGPIPE@
#cmakedefine isnan @isnan@
#cmakedefine finite @finite@ #cmakedefine finite @finite@
#cmakedefine popen @popen@ #cmakedefine popen @popen@
#cmakedefine pclose @pclose@ #cmakedefine pclose @pclose@
......
...@@ -475,7 +475,6 @@ ELSE() ...@@ -475,7 +475,6 @@ ELSE()
CHECK_SYMBOL_EXISTS(finite "ieeefp.h" HAVE_FINITE) CHECK_SYMBOL_EXISTS(finite "ieeefp.h" HAVE_FINITE)
ENDIF() ENDIF()
CHECK_SYMBOL_EXISTS(log2 math.h HAVE_LOG2) CHECK_SYMBOL_EXISTS(log2 math.h HAVE_LOG2)
CHECK_SYMBOL_EXISTS(isnan math.h HAVE_ISNAN)
CHECK_SYMBOL_EXISTS(rint math.h HAVE_RINT) CHECK_SYMBOL_EXISTS(rint math.h HAVE_RINT)
# isinf() prototype not found on Solaris # isinf() prototype not found on Solaris
......
...@@ -811,6 +811,10 @@ inline unsigned long long my_double2ulonglong(double d) ...@@ -811,6 +811,10 @@ inline unsigned long long my_double2ulonglong(double d)
#define SIZE_T_MAX (~((size_t) 0)) #define SIZE_T_MAX (~((size_t) 0))
#endif #endif
#ifdef __cplusplus
#include <cmath>
#endif
#ifndef isfinite #ifndef isfinite
#ifdef HAVE_FINITE #ifdef HAVE_FINITE
#define isfinite(x) finite(x) #define isfinite(x) finite(x)
...@@ -822,11 +826,6 @@ inline unsigned long long my_double2ulonglong(double d) ...@@ -822,11 +826,6 @@ inline unsigned long long my_double2ulonglong(double d)
static inline bool isfinite(double x) { return std::isfinite(x); } static inline bool isfinite(double x) { return std::isfinite(x); }
#endif /* isfinite */ #endif /* isfinite */
#ifndef HAVE_ISNAN
#define isnan(x) ((x) != (x))
#endif
#define my_isnan(x) isnan(x)
#ifdef HAVE_ISINF #ifdef HAVE_ISINF
#define my_isinf(X) isinf(X) #define my_isinf(X) isinf(X)
#else /* !HAVE_ISINF */ #else /* !HAVE_ISINF */
......
...@@ -4821,7 +4821,7 @@ int truncate_double(double *nr, uint field_length, uint dec, ...@@ -4821,7 +4821,7 @@ int truncate_double(double *nr, uint field_length, uint dec,
int error= 0; int error= 0;
double res= *nr; double res= *nr;
if (isnan(res)) if (std::isnan(res))
{ {
*nr= 0; *nr= 0;
return -1; return -1;
......
...@@ -778,7 +778,6 @@ uint hp_rb_make_key(HP_KEYDEF *keydef, uchar *key, ...@@ -778,7 +778,6 @@ uint hp_rb_make_key(HP_KEYDEF *keydef, uchar *key,
uchar *pos= (uchar*) rec + seg->start; uchar *pos= (uchar*) rec + seg->start;
DBUG_ASSERT(seg->type != HA_KEYTYPE_BIT); DBUG_ASSERT(seg->type != HA_KEYTYPE_BIT);
#ifdef HAVE_ISNAN
if (seg->type == HA_KEYTYPE_FLOAT) if (seg->type == HA_KEYTYPE_FLOAT)
{ {
float nr; float nr;
...@@ -802,7 +801,6 @@ uint hp_rb_make_key(HP_KEYDEF *keydef, uchar *key, ...@@ -802,7 +801,6 @@ uint hp_rb_make_key(HP_KEYDEF *keydef, uchar *key,
continue; continue;
} }
} }
#endif
pos+= length; pos+= length;
while (length--) while (length--)
{ {
......
...@@ -279,7 +279,6 @@ MARIA_KEY *_ma_make_key(MARIA_HA *info, MARIA_KEY *int_key, uint keynr, ...@@ -279,7 +279,6 @@ MARIA_KEY *_ma_make_key(MARIA_HA *info, MARIA_KEY *int_key, uint keynr,
} }
else if (keyseg->flag & HA_SWAP_KEY) else if (keyseg->flag & HA_SWAP_KEY)
{ /* Numerical column */ { /* Numerical column */
#ifdef HAVE_ISNAN
if (type == HA_KEYTYPE_FLOAT) if (type == HA_KEYTYPE_FLOAT)
{ {
float nr; float nr;
...@@ -303,7 +302,6 @@ MARIA_KEY *_ma_make_key(MARIA_HA *info, MARIA_KEY *int_key, uint keynr, ...@@ -303,7 +302,6 @@ MARIA_KEY *_ma_make_key(MARIA_HA *info, MARIA_KEY *int_key, uint keynr,
continue; continue;
} }
} }
#endif
pos+=length; pos+=length;
while (length--) while (length--)
{ {
......
...@@ -77,7 +77,6 @@ MARIA_KEY *_ma_sp_make_key(MARIA_HA *info, MARIA_KEY *ret_key, uint keynr, ...@@ -77,7 +77,6 @@ MARIA_KEY *_ma_sp_make_key(MARIA_HA *info, MARIA_KEY *ret_key, uint keynr,
DBUG_ASSERT(keyseg->type == HA_KEYTYPE_DOUBLE); DBUG_ASSERT(keyseg->type == HA_KEYTYPE_DOUBLE);
val= mbr[start / sizeof (double)]; val= mbr[start / sizeof (double)];
#ifdef HAVE_ISNAN
if (isnan(val)) if (isnan(val))
{ {
bzero(key, length); bzero(key, length);
...@@ -85,7 +84,6 @@ MARIA_KEY *_ma_sp_make_key(MARIA_HA *info, MARIA_KEY *ret_key, uint keynr, ...@@ -85,7 +84,6 @@ MARIA_KEY *_ma_sp_make_key(MARIA_HA *info, MARIA_KEY *ret_key, uint keynr,
len+= length; len+= length;
continue; continue;
} }
#endif
if (keyseg->flag & HA_SWAP_KEY) if (keyseg->flag & HA_SWAP_KEY)
{ {
......
...@@ -150,7 +150,6 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key, ...@@ -150,7 +150,6 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key,
} }
else if (keyseg->flag & HA_SWAP_KEY) else if (keyseg->flag & HA_SWAP_KEY)
{ /* Numerical column */ { /* Numerical column */
#ifdef HAVE_ISNAN
if (type == HA_KEYTYPE_FLOAT) if (type == HA_KEYTYPE_FLOAT)
{ {
float nr; float nr;
...@@ -174,7 +173,6 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key, ...@@ -174,7 +173,6 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key,
continue; continue;
} }
} }
#endif
pos+=length; pos+=length;
while (length--) while (length--)
{ {
......
...@@ -66,7 +66,6 @@ uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key, ...@@ -66,7 +66,6 @@ uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key,
DBUG_ASSERT(keyseg->type == HA_KEYTYPE_DOUBLE); DBUG_ASSERT(keyseg->type == HA_KEYTYPE_DOUBLE);
val= mbr[start / sizeof (double)]; val= mbr[start / sizeof (double)];
#ifdef HAVE_ISNAN
if (isnan(val)) if (isnan(val))
{ {
bzero(key, length); bzero(key, length);
...@@ -74,7 +73,6 @@ uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key, ...@@ -74,7 +73,6 @@ uint sp_make_key(register MI_INFO *info, uint keynr, uchar *key,
len+= length; len+= length;
continue; continue;
} }
#endif
if (keyseg->flag & HA_SWAP_KEY) if (keyseg->flag & HA_SWAP_KEY)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment