diff --git a/configure.ac b/configure.ac index f07e78ca625..99dd9fab645 100644 --- a/configure.ac +++ b/configure.ac @@ -220,6 +220,9 @@ case $host_cpu in ;; esac +dnl See https://github.com/php/php-src/issues/14140 +AX_CHECK_COMPILE_FLAG([-ffp-contract=off], [CFLAGS="$CFLAGS -ffp-contract=off"]) + dnl Mark symbols hidden by default if the compiler (for example, gcc >= 4) dnl supports it. This can help reduce the binary size and startup time. AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], diff --git a/ext/standard/tests/array/gh14140.phpt b/ext/standard/tests/array/gh14140.phpt new file mode 100644 index 00000000000..2bc17a236a7 --- /dev/null +++ b/ext/standard/tests/array/gh14140.phpt @@ -0,0 +1,21 @@ +--TEST-- +GH-14140: Floating point bug in range operation on Apple Silicon hardware +--FILE-- + +--EXPECT-- +Array +( + [0] => -0.03 + [1] => -0.02 + [2] => -0.01 + [3] => 0 + [4] => 0.01 + [5] => 0.02 + [6] => 0.03 +)