The Not ! operator in combination with NAN fails with OPcache enabled
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Reproduce el ejemplo mínimo de PHP del informe con OPcache habilitado y deshabilitado, usando PHP 8.3.11 u otra versión afectada. Después, rastrea cómo el optimizador de OPcache maneja la comparación y la negación; se considera terminado cuando las assertions pasan y ambas salidas coinciden con los valores esperados con OPcache habilitado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
The following code:
$a = 100.0;
$b = \NAN;
$cmp = $a > $b; // since NAN always false;
$cmp2 = !($a > $b); // $expected true;
var_dump($cmp);
var_dump($cmp2);
assert($cmp === false);
assert($cmp2 === true);
Resulted in this output:
bool(false)
bool(true)
Resulted in this output with opcache enabled:
bool(false)
bool(false) ❌
But I expected this output instead:
bool(false)
bool(true)
The issue only seems to appear using opcache. Also spotted on different environments with older PHP versions.
PHP 8.3.11 (cli) (built: Aug 30 2024 16:21:34) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.11, Copyright (c) Zend Technologies
with Xdebug v3.3.1, Copyright (c) 2002-2023, by Derick Rethans
with Zend OPcache v8.3.11, Copyright (c), by Zend Technologies
PHP Version
PHP 8.3.11
Operating System
No response
- Lenguaje dominante
- C
- Estrellas
- 40.4k
- Forks
- 8.2k
- Merge medio
- 2 d 15 h
- PR fusionados (30 d)
- 103
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de php/php-src
-
Bug SAPI: cli_server Status: Verified
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Bug Status: Needs Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
Bug Status: Needs Triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
-
Bug Status: Needs Triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Flaky hrtime.phpt test AbiertoBug Category: Tests Status: Verified
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Todos los issues de php/php-src
Issues similares
-
[adam] AdamNet network read doesn't cap to MAX_ADAM_PACKET_LEN, overflows client receive buffers Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
FujiNetWIFI/fujinet-firmware#1649 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
HarbourMasters/Shipwright#7229 ·
-
Error while building from source Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
riscv-software-src/riscv-isa-sim#2435 · 1 comentario ·
-
bug Self Built Image SNAPSHOT Supported Device target/ramips
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100