mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Use a more bulletproof test for whether finite() and isinf() are present.
It seems that recent gcc versions can optimize away calls to these functions even when the functions do not exist on the platform, resulting in a bogus positive result. Avoid this by using a non-constant argument and ensuring that the function result is not simply discarded. Per report from François Laupretre.
This commit is contained in:
10
configure
vendored
10
configure
vendored
@ -14241,7 +14241,6 @@ fi
|
||||
|
||||
|
||||
|
||||
# do this one the hard way in case isinf() is a macro
|
||||
echo "$as_me:$LINENO: checking for isinf" >&5
|
||||
echo $ECHO_N "checking for isinf... $ECHO_C" >&6
|
||||
if test "${ac_cv_func_isinf+set}" = set; then
|
||||
@ -14253,12 +14252,14 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <math.h>
|
||||
double glob_double;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
double x = 0.0; int res = isinf(x);
|
||||
return isinf(glob_double) ? 0 : 1;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
@ -15138,11 +15139,14 @@ _ACEOF
|
||||
cat confdefs.h >>conftest.$ac_ext
|
||||
cat >>conftest.$ac_ext <<_ACEOF
|
||||
/* end confdefs.h. */
|
||||
|
||||
#include <math.h>
|
||||
double glob_double;
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
int dummy=finite(1.0);
|
||||
return finite(glob_double) ? 0 : 1;
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user