com php-src: Revert "ZEND_SEPARATE reuses temporaries ": Zend/tests/temporary_cleaning_006.phpt Z end/zend_opcode.c
| From: | Anatol Belski | Date: | Fri, 10 Jul 2015 10:05:43 +0000 |
| Subject: | com php-src: Revert "ZEND_SEPARATE reuses temporaries ": Zend/tests/temporary_cleaning_006.phpt Z end/zend_opcode.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-87903@lists.php.net to get a copy of this message | ||
Commit: 770571bce95e086cf6dad703e863c5874082cd6b
Author: Anatol Belski <ab@php.net> Fri, 10 Jul 2015 12:05:43 +0200
Parents: 6cdf47725485cb5f2993a488aeb2df7fb4b287f6
Branches: PHP-7.0.0
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=770571bce95e086cf6dad703e863c5874082cd6b
Log:
Revert "ZEND_SEPARATE reuses temporaries"
This reverts commit dfe6fdaa727bd9ac4a9b68c5fe521e0f1991ca46.
Changed paths:
D Zend/tests/temporary_cleaning_006.phpt
M Zend/zend_opcode.c
Diff:
diff --git a/Zend/tests/temporary_cleaning_006.phpt b/Zend/tests/temporary_cleaning_006.phpt
deleted file mode 100644
index 758260d..0000000
--- a/Zend/tests/temporary_cleaning_006.phpt
+++ /dev/null
@@ -1,18 +0,0 @@
---TEST--
-Exception after separation during indirect write to fcall result
---FILE--
-<?php
-
-function throwing() { throw new Exception; }
-
-function getArray() { return [0]; }
-
-try {
- getArray()[throwing()] = 1;
-} catch (Exception $e) {
- echo "Exception\n";
-}
-
-?>
---EXPECT--
-Exception
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index f8d0404..8f3ecdd 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -950,7 +950,6 @@ static zend_always_inline uint32_t *generate_var_liveliness_info_ex(zend_op_arra
/* the following opcodes reuse TMP created before */
&& opline->opcode != ZEND_ROPE_ADD
&& opline->opcode != ZEND_ADD_ARRAY_ELEMENT
- && opline->opcode != ZEND_SEPARATE
/* passes fast_call */
&& opline->opcode != ZEND_FAST_CALL
/* the following opcodes pass class_entry */
@@ -981,7 +980,6 @@ static zend_always_inline uint32_t *generate_var_liveliness_info_ex(zend_op_arra
if (Tstart[var] != (uint32_t)-1
/* the following opcodes don't free TMP */
&& opline->opcode != ZEND_ROPE_ADD
- && opline->opcode != ZEND_SEPARATE
&& opline->opcode != ZEND_FETCH_LIST
&& opline->opcode != ZEND_CASE
&& opline->opcode != ZEND_FE_FETCH_R