Bug #77257 [Opn]: value of variable assigned in a switch() construct gets lost
Edit report at https://bugs.php.net/bug.php?id=77257&edit=1
ID: 77257
Updated by: nikic@php.net
Reported by: mail dot cmcm at gmail dot com
Summary: value of variable assigned in a switch() construct
gets lost
Status: Open
Type: Bug
Package: opcache
Operating System: Windows 10
PHP Version: 7.3.0
Block user comment: N
Private report: N
New Comment:
Reduced test case based on code provided via mail:
function test($x) {
switch ($x["y"]) {
case "a":
break;
case "b":
break;
}
}
This generates "Block 4 predecessors missing 1" SSA verification errors, first appearing
after jump optimization.
Previous Comments:
------------------------------------------------------------------------
[2018-12-07 16:22:43] nikic@php.net
For this purpose it's usually enough to only have the function that contains the switch, even
if it cannot be run in isolation. The surrounding code (likely) does not matter. The code is only
needed to get an opcode dump and see the faulty transformation, a smaller test case can then be
reconstructed from there.
------------------------------------------------------------------------
[2018-12-07 12:17:08] mail dot cmcm at gmail dot com
I'm really sorry, but I can't. I'm working on a backend for a music publisher and
we're talking about a huge project. When I find the time I'll try again to reproduce the
problem outside this project. It doesn't happen if I isolate the method so it could be hard to
pinpoint... :(
------------------------------------------------------------------------
[2018-12-07 11:05:57] nikic@php.net
Can you please provide the (non-reduced) source code of the function that is failing? If you
can't publish the code, please feel free to mail to me directly at nikic@php.net.
------------------------------------------------------------------------
[2018-12-07 07:12:40] requinix@php.net
I doubt it's specific to Windows. Likely just a regular opcache bug.
------------------------------------------------------------------------
[2018-12-07 07:04:45] info at cmcm dot info
Indeed, disabling opcache fixed the problem. So is this a bug specific to 7.3 or the windows
version? Because I never had a problem with 7.2 and opcache enabled.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=77257
--
Edit this bug report at https://bugs.php.net/bug.php?id=77257&edit=1
Thread (10 messages)