xref: /PHP-8.2/ext/opcache/tests/jit/mul_010.phpt (revision e30d78f3)
1--TEST--
2JIT MUL: 010 incorrect guard elimination
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6--FILE--
7<?php
8function test() {
9    $j = 0;
10    for ($i = 0; $i < 40; $i++) {
11        $a * $e == $a - $a + $e;
12        $maq[$obj] = $a + $e;
13        $maq[$obj] = $maq[$obj] = !!$a = $a .
14            $maq[$obj] = $maq[$obj] = $maq[$obj] = $maq[$obj] = $a = $a + $a = &$a +
15            $maq[$obj] = $maq[$obj] = $a + $e;
16        $maq[$obj] = $maq[$obj] = !!$a = $a . $maq[$obj] = $maq[$obj] = $maq[$obj] =
17            $maq[$obj] = $a * $e == $a - $a + $e;
18        $maq[$obj] = $maq[$obj] = +$e;
19        $a * $e == $a - $a + $e;
20        +$e;
21        $a * $a = $a + $a = &$a + $e = $a-- +$a + $e;
22        $maq[$obj] = $maq[$obj] = !!$a = $a . $a &= $aZ = $a;
23    }
24}
25try {
26    @test();
27} catch (Throwable $ex) {
28	echo $ex->getMessage() . "\n";
29}
30?>
31--EXPECT--
32Unsupported operand types: string * float
33