diff options
| author | Xinchen Hui <laruence@gmail.com> | 2017-10-17 19:47:40 +0800 |
|---|---|---|
| committer | Xinchen Hui <laruence@gmail.com> | 2017-10-17 19:47:40 +0800 |
| commit | 21f2ed6a6325a343b70f54a3812c845427a74e17 (patch) | |
| tree | 367a83928b86c961c1d4cd36aafadf120f528ad8 /ext | |
| parent | 801b467c73c5435c83d122549626ae1979b96414 (diff) | |
| parent | e53a9aaa4aa091a0799ed5a078dc66ed04ff32b8 (diff) | |
| download | php-git-21f2ed6a6325a343b70f54a3812c845427a74e17.tar.gz | |
Merge branch 'PHP-7.2'
* PHP-7.2:
Fixed bug (assertion fails with extended info generated)
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/opcache/Optimizer/dce.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/opcache/Optimizer/dce.c b/ext/opcache/Optimizer/dce.c index 099a597998..5c432c1f94 100644 --- a/ext/opcache/Optimizer/dce.c +++ b/ext/opcache/Optimizer/dce.c @@ -488,6 +488,12 @@ static void dce_live_ranges(context *ctx, zend_op_array *op_array, zend_ssa *ssa uint32_t var = live_range->var & ~ZEND_LIVE_MASK; uint32_t def = live_range->start - 1; + if ((op_array->opcodes[def].result_type == IS_UNUSED) && + (UNEXPECTED(op_array->opcodes[def].opcode == ZEND_EXT_STMT) || + UNEXPECTED(op_array->opcodes[def].opcode == ZEND_EXT_FCALL_END))) { + def--; + } + if (op_array->opcodes[def].result_type == IS_UNUSED) { if (op_array->opcodes[def].opcode == ZEND_DO_FCALL) { /* constructor call */ |
