1--TEST-- 2JIT CMP: 003 Comparison with NaN 3--INI-- 4opcache.enable=1 5opcache.enable_cli=1 6opcache.file_update_protection=0 7opcache.jit_buffer_size=1M 8opcache.protect_memory=1 9--EXTENSIONS-- 10opcache 11--FILE-- 12<?php 13function t() { 14 echo "!"; 15 return true; 16} 17function f() { 18 echo "!"; 19 return false; 20} 21$a = 0.0; 22$i = 0; 23$b = NAN; 24$c = true; 25$d = false; 26var_dump($a == $b); 27var_dump($a != $b); 28var_dump($a < $b); 29var_dump($a > $b); 30var_dump($a <= $b); 31var_dump($a >= $b); 32var_dump($a == $b ? 1 : 0); 33var_dump($a != $b ? 1 : 0); 34var_dump($a < $b ? 1 : 0); 35var_dump($a > $b ? 1 : 0); 36var_dump($a <= $b ? 1 : 0); 37var_dump($a >= $b ? 1 : 0); 38if ($a == $b) { 39} else { 40 echo "1\n"; 41} 42if ($a != $b) { 43} else { 44 echo "2\n"; 45} 46if ($a < $b) { 47} else { 48 echo "3\n"; 49} 50if ($a > $b) { 51} else { 52 echo "4\n"; 53} 54if ($a <= $b) { 55} else { 56 echo "5\n"; 57} 58if ($a >= $b) { 59} else { 60 echo "6\n"; 61} 62var_dump($i == $b ? 1 : 0); 63var_dump($i != $b ? 1 : 0); 64var_dump($i < $b ? 1 : 0); 65var_dump($i > $b ? 1 : 0); 66var_dump($i <= $b ? 1 : 0); 67var_dump($i >= $b ? 1 : 0); 68if ($i == $b) { 69} else { 70 echo "1\n"; 71} 72if ($i != $b) { 73} else { 74 echo "2\n"; 75} 76if ($i < $b) { 77} else { 78 echo "3\n"; 79} 80if ($i > $b) { 81} else { 82 echo "4\n"; 83} 84if ($i <= $b) { 85} else { 86 echo "5\n"; 87} 88if ($i >= $b) { 89} else { 90 echo "6\n"; 91} 92var_dump($a == $b && t()); 93var_dump($a != $b && t()); 94var_dump($a < $b && t()); 95var_dump($a > $b && t()); 96var_dump($a <= $b && t()); 97var_dump($a >= $b && t()); 98var_dump($a == $b || f()); 99var_dump($a != $b || f()); 100var_dump($a < $b || f()); 101var_dump($a > $b || f()); 102var_dump($a <= $b || f()); 103var_dump($a >= $b || f()); 104var_dump($i == $b && t()); 105var_dump($i != $b && t()); 106var_dump($i < $b && t()); 107var_dump($i > $b && t()); 108var_dump($i <= $b && t()); 109var_dump($i >= $b && t()); 110var_dump($i == $b || f()); 111var_dump($i != $b || f()); 112var_dump($i < $b || f()); 113var_dump($i > $b || f()); 114var_dump($i <= $b || f()); 115var_dump($i >= $b || f()); 116$a=NAN; 117var_dump($a == $b); 118var_dump($a != $b); 119var_dump($a < $b); 120var_dump($a > $b); 121var_dump($a <= $b); 122var_dump($a >= $b); 123var_dump($a == $b ? 1 : 0); 124var_dump($a != $b ? 1 : 0); 125var_dump($a < $b ? 1 : 0); 126var_dump($a > $b ? 1 : 0); 127var_dump($a <= $b ? 1 : 0); 128var_dump($a >= $b ? 1 : 0); 129?> 130--EXPECT-- 131bool(false) 132bool(true) 133bool(false) 134bool(false) 135bool(false) 136bool(false) 137int(0) 138int(1) 139int(0) 140int(0) 141int(0) 142int(0) 1431 1443 1454 1465 1476 148int(0) 149int(1) 150int(0) 151int(0) 152int(0) 153int(0) 1541 1553 1564 1575 1586 159bool(false) 160!bool(true) 161bool(false) 162bool(false) 163bool(false) 164bool(false) 165!bool(false) 166bool(true) 167!bool(false) 168!bool(false) 169!bool(false) 170!bool(false) 171bool(false) 172!bool(true) 173bool(false) 174bool(false) 175bool(false) 176bool(false) 177!bool(false) 178bool(true) 179!bool(false) 180!bool(false) 181!bool(false) 182!bool(false) 183bool(false) 184bool(true) 185bool(false) 186bool(false) 187bool(false) 188bool(false) 189int(0) 190int(1) 191int(0) 192int(0) 193int(0) 194int(0) 195