mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge remote-tracking branch 'upstream/PHP-8.0' into PHP-8.1
This commit is contained in:
commit
2d777466c0
4 changed files with 2 additions and 48 deletions
1
NEWS
1
NEWS
|
@ -4,6 +4,7 @@ PHP NEWS
|
|||
|
||||
- Core:
|
||||
. Fixed --CGI-- support of run-tests.php. (cmb)
|
||||
. Fixed incorrect double to long casting in latest clang. (zeriyoshi)
|
||||
|
||||
- Date:
|
||||
. Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of
|
||||
|
|
34
Zend/Zend.m4
34
Zend/Zend.m4
|
@ -149,40 +149,6 @@ dnl Checks for library functions.
|
|||
AC_CHECK_FUNCS(getpid kill sigsetjmp)
|
||||
|
||||
ZEND_CHECK_FLOAT_PRECISION
|
||||
|
||||
dnl Test whether double cast to long preserves least significant bits.
|
||||
AC_MSG_CHECKING(whether double cast to long preserves least significant bits)
|
||||
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <limits.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
if (sizeof(long) == 4) {
|
||||
double d = (double) LONG_MIN * LONG_MIN + 2e9;
|
||||
|
||||
if ((long) d == 2e9 && (long) -d == -2e9) {
|
||||
return 0;
|
||||
}
|
||||
} else if (sizeof(long) == 8) {
|
||||
double correct = 18e18 - ((double) LONG_MIN * -2); /* Subtract ULONG_MAX + 1 */
|
||||
|
||||
if ((long) 18e18 == correct) { /* On 64-bit, only check between LONG_MAX and ULONG_MAX */
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
]])], [
|
||||
AC_DEFINE([ZEND_DVAL_TO_LVAL_CAST_OK], 1, [Define if double cast to long preserves least significant bits])
|
||||
AC_MSG_RESULT(yes)
|
||||
], [
|
||||
AC_MSG_RESULT(no)
|
||||
], [
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
|
||||
])
|
||||
|
||||
dnl
|
||||
|
|
|
@ -3396,7 +3396,6 @@ ZEND_API const char* ZEND_FASTCALL zend_memnrstr_ex(const char *haystack, const
|
|||
}
|
||||
/* }}} */
|
||||
|
||||
#ifndef ZEND_DVAL_TO_LVAL_CAST_OK
|
||||
#if SIZEOF_ZEND_LONG == 4
|
||||
ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow(double d) /* {{{ */
|
||||
{
|
||||
|
@ -3427,4 +3426,3 @@ ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow(double d)
|
|||
}
|
||||
/* }}} */
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -99,16 +99,6 @@ ZEND_API const char* ZEND_FASTCALL zend_memnrstr_ex(const char *haystack, const
|
|||
# define ZEND_DOUBLE_FITS_LONG(d) (!((d) >= (double)ZEND_LONG_MAX || (d) < (double)ZEND_LONG_MIN))
|
||||
#endif
|
||||
|
||||
#ifdef ZEND_DVAL_TO_LVAL_CAST_OK
|
||||
static zend_always_inline zend_long zend_dval_to_lval(double d)
|
||||
{
|
||||
if (EXPECTED(zend_finite(d)) && EXPECTED(!zend_isnan(d))) {
|
||||
return (zend_long)d;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow(double d);
|
||||
|
||||
static zend_always_inline zend_long zend_dval_to_lval(double d)
|
||||
|
@ -120,7 +110,6 @@ static zend_always_inline zend_long zend_dval_to_lval(double d)
|
|||
}
|
||||
return (zend_long)d;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Used to convert a string float to integer during an (int) cast */
|
||||
static zend_always_inline zend_long zend_dval_to_lval_cap(double d)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue