com php-src: Revert "Add assertion in liveliness computation": Zend/zend_opcode.c
| From: | Anatol Belski | Date: | Fri, 10 Jul 2015 10:05:35 +0000 |
| Subject: | com php-src: Revert "Add assertion in liveliness computation": Zend/zend_opcode.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87904@lists.php.net to get a copy of this message | ||
Commit: 6cdf47725485cb5f2993a488aeb2df7fb4b287f6
Author: Anatol Belski <ab@php.net> Fri, 10 Jul 2015 12:05:35 +0200
Parents: 5784b8f8e6b4a3b31a7e5529d7a55b98626c51e2
Branches: PHP-7.0.0
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=6cdf47725485cb5f2993a488aeb2df7fb4b287f6
Log:
Revert "Add assertion in liveliness computation"
This reverts commit 62062dcd0e3228830c7a6af5c689747151828f11.
Changed paths:
M Zend/zend_opcode.c
Diff:
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index ae2b4bf..f8d0404 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -941,12 +941,9 @@ static zend_always_inline uint32_t
*generate_var_liveliness_info_ex(zend_op_arra
&& opline->opcode != ZEND_BOOL
&& opline->opcode != ZEND_JMPZ_EX
&& opline->opcode != ZEND_JMPNZ_EX
- /* These opcodes write the result of the true branch of a ternary, short
- * ternary or coalesce and are immediately followed by the instructions
- * for the false branch (where this result is not live) */
+ /* these two consecutive ops appear on ternary,
+ * the result of true branch is undefined for false branch */
&& (opline->opcode != ZEND_QM_ASSIGN || (opline + 1)->opcode != ZEND_JMP)
- && opline->opcode != ZEND_JMP_SET
- && opline->opcode != ZEND_COALESCE
/* exception for opcache, it might nowhere use the temporary
* (anyway bool, so no need to free) */
&& opline->opcode != ZEND_CASE
@@ -962,17 +959,14 @@ static zend_always_inline uint32_t
*generate_var_liveliness_info_ex(zend_op_arra
&& opline->opcode != ZEND_DECLARE_INHERITED_CLASS
&& opline->opcode != ZEND_DECLARE_INHERITED_CLASS_DELAYED
&& opline->opcode != ZEND_DECLARE_ANON_CLASS
- && opline->opcode != ZEND_DECLARE_ANON_INHERITED_CLASS
- ) {
+ && opline->opcode != ZEND_DECLARE_ANON_INHERITED_CLASS) {
if (done_pass_two) {
var = EX_VAR_TO_NUM(opline->result.var) - op_array->last_var;
} else {
var = opline->result.var;
}
- ZEND_ASSERT(Tstart[var] == (unsigned) -1);
+ /* Objects created via ZEND_NEW are only fully initialized after the DO_FCALL (constructor call)
*/
if (opline->opcode == ZEND_NEW) {
- /* Objects created via ZEND_NEW are only fully initialized
- * after the DO_FCALL (constructor call) */
Tstart[var] = opline->op2.opline_num - 1;
} else {
Tstart[var] = opline - op_array->opcodes;