summaryrefslogtreecommitdiff
path: root/ext/opcache/tests/jit/bug80742.phpt
blob: a86fe1052ba02f878b2c862befd738eecde559b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
--TEST--
Bug #80742 (Opcache JIT makes some boolean logic unexpectedly be true)
--FILE--
<?php

function checkGroundState(float $movY, float $dy) : void{
	var_dump($movY != $dy, $movY < 0, ($movY != $dy and $movY < 0));
	var_dump("wow!");
}

checkGroundState(0, 0);

function eq(float $a, float $b, $c, $d) {
	if ($a == $b) {
		echo 1;
	}
	if ($a == $b) {
	} else {
		echo 2;
	}
	if ($a != $b) {
		echo 3;
	}
	if ($a != $b) {
	} else {
		echo 4;
	}
	if ($a === $b) {
		echo 5;
	}
	if ($a === $b) {
	} else {
		echo 6;
	}
	if ($a !== $b) {
		echo 7;
	}
	if ($a !== $b) {
	} else {
		echo 8;
	}
	echo "\n";
	var_dump(
		$a == $b && $c,
		$a != $b && $c,
		$a === $b && $c,
		$a !== $b && $c,);
	var_dump(
		$a == $b || $d,
		$a != $b || $d,
		$a === $b || $d,
		$a !== $b || $d);
}
eq(3.0, 3.0, true, false);
eq(3.0,	2.0, true, false);
eq(3.0, NAN, true, false);
eq(NAN, NAN, true, false);
--EXPECT--
bool(false)
bool(false)
bool(false)
string(4) "wow!"
1458
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
2367
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
2367
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
2367
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
bool(true)