From 51af6a4077133271cb3b925e918c27deb74d3647 Mon Sep 17 00:00:00 2001 From: "kaa@polly.local" <> Date: Tue, 8 May 2007 21:11:46 +0400 Subject: Fix for bug #28240: "isinf()" cannot be used in C++ for lack of prototype Since isinf() portability across various platforms and compilers is a complicated question, we should not use it directly. Instead, the my_isinf() macro should be used, which is defined as an alias to the system-defined isinf() if it is safe to use, or a workaround implementation otherwise. --- configure.in | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'configure.in') diff --git a/configure.in b/configure.in index 1026c855bf2..e788419eb4f 100644 --- a/configure.in +++ b/configure.in @@ -2006,12 +2006,20 @@ case "$target" in ;; esac -# isinf() could be a function or a macro (HPUX) -AC_MSG_CHECKING(for isinf with ) +# Check that isinf() is available in math.h and can be used in both C and C++ +# code +AC_MSG_CHECKING(for isinf in ) AC_TRY_LINK([#include ], [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 ], [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" -- cgit v1.2.1