php-src/Zend/Optimizer
Niels Dossche 5cad1a7176 Fix GH-11245 (In some specific cases SWITCH with one default statement will cause segfault)
The block optimizer pass allows the use of sources of the preceding
block if the block is a follower and not a target. This causes issues
when trying to remove FREE instructions: if the source is not in the
block of the FREE, then the FREE and source are still removed. Therefore
the other successor blocks, which must consume or FREE the temporary,
will still contain the FREE opline. This opline will now refer to a
temporary that doesn't exist anymore, which most of the time results in
a crash. For these kind of non-local scenarios, we'll let the SSA
based optimizations handle those cases.

Closes GH-11251.
2023-05-23 00:33:25 +02:00
..
block_pass.c Fix GH-11245 (In some specific cases SWITCH with one default statement will cause segfault) 2023-05-23 00:33:25 +02:00
compact_literals.c
compact_vars.c
dce.c
dfa_pass.c Fix incorrect match default branch optimization 2023-04-26 15:19:20 +02:00
escape_analysis.c
nop_removal.c
optimize_func_calls.c
optimize_temp_vars_5.c
pass1.c
pass3.c
sccp.c Fix GH-10801: Named arguments in CTE functions cause a segfault 2023-03-10 19:22:44 +01:00
scdf.c
scdf.h
ssa_integrity.c
zend_call_graph.c
zend_call_graph.h
zend_cfg.c
zend_cfg.h
zend_dfg.c
zend_dfg.h
zend_dump.c
zend_dump.h
zend_func_info.c
zend_func_info.h
zend_func_infos.h
zend_inference.c Fix too wide OR and AND range inference 2023-05-02 20:08:59 +02:00
zend_inference.h
zend_optimizer.c
zend_optimizer.h
zend_optimizer_internal.h
zend_ssa.c
zend_ssa.h
zend_worklist.h