Commit f63ab1a1 authored by unknown's avatar unknown

import of fix for bug#28240

parent ba5e3464
......@@ -2006,12 +2006,20 @@ case "$target" in
;;
esac
# isinf() could be a function or a macro (HPUX)
AC_MSG_CHECKING(for isinf with <math.h>)
# Check that isinf() is available in math.h and can be used in both C and C++
# code
AC_MSG_CHECKING(for isinf in <math.h>)
AC_TRY_LINK([#include <math.h>], [float f = 0.0; int r = isinf(f); return r],
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function]),
AC_MSG_RESULT(no))
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(whether isinf() can be used in C++ code)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_LINK([#include <math.h>], [float f = 0.0; int r = isinf(f); return r],
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_ISINF, [1], [isinf() macro or function]),
AC_MSG_RESULT(no))
AC_LANG_RESTORE,
AC_MSG_RESULT(no))
CFLAGS="$ORG_CFLAGS"
......
......@@ -792,12 +792,11 @@ typedef SOCKET_SIZE_TYPE size_socket;
#define isnan(x) ((x) != (x))
#endif
#if !defined(HAVE_ISINF)
/* The configure check for "isinf with math.h" has failed */
#ifdef isinf
#undef isinf
#endif
#define isinf(X) (!finite(X) && !isnan(X))
#ifdef HAVE_ISINF
/* isinf() can be used in both C and C++ code */
#define my_isinf(X) isinf(X)
#else
#define my_isinf(X) (!finite(X) && !isnan(X))
#endif
/* Define missing math constants. */
......
......@@ -2025,9 +2025,9 @@ double my_double_round(double value, longlong dec, bool dec_unsigned,
tmp=(abs_dec < array_elements(log_10) ?
log_10[abs_dec] : pow(10.0,(double) abs_dec));
if (dec_negative && isinf(tmp))
if (dec_negative && my_isinf(tmp))
tmp2= 0;
else if (!dec_negative && isinf(value * tmp))
else if (!dec_negative && my_isinf(value * tmp))
tmp2= value;
else if (truncate)
{
......
......@@ -194,7 +194,7 @@ double my_strtod(const char *str, char **end_ptr, int *error)
done:
*end_ptr= (char*) str; /* end of number */
if (overflow || isinf(result))
if (overflow || my_isinf(result))
{
result= DBL_MAX;
*error= EOVERFLOW;
......
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