xref: /PHP-8.4/ext/opcache/tests/jit/nan_002.phpt (revision c16ad918)
1--TEST--
2NaN handling: 002
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6opcache.file_update_protection=0
7opcache.protect_memory=1
8--FILE--
9<?php
10function test(float $a) {
11    if ($a) var_dump("1");
12    if (!$a) var_dump("2");
13    var_dump((bool) $a);
14    var_dump(!$a);
15    echo "\n";
16}
17function test1(float $a, bool $b) {
18    var_dump($a && $b); //JMPNZ_EX
19}
20function test2(float $a, bool $b) {
21    var_dump($a || $b); // JMPZ_EX
22}
23test(NAN);
24test(1.0);
25test(0.0);
26
27test1(NAN, true);
28test1(1.0, true);
29test1(0.0, true);
30echo "\n";
31
32test2(NAN, false);
33test2(1.0, false);
34test2(0.0, false);
35?>
36--EXPECT--
37string(1) "1"
38bool(true)
39bool(false)
40
41string(1) "1"
42bool(true)
43bool(false)
44
45string(1) "2"
46bool(false)
47bool(true)
48
49bool(true)
50bool(true)
51bool(false)
52
53bool(true)
54bool(true)
55bool(false)
56