com php-src: for some reason gcc -O2 compiled the previous code in unexpected way: Zend/zend_vm_def.h Zend/zend_vm_exe cute.h
| From: | Dmitry Stogov | Date: | Fri, 11 Apr 2014 14:16:03 +0000 |
| Subject: | com php-src: for some reason gcc -O2 compiled the previous code in unexpected way: Zend/zend_vm_def.h Zend/zend_vm_exe cute.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-77419@lists.php.net to get a copy of this message | ||
Commit: e27eca90a58bdf90e33cd13290e4b2208a62bf7c
Author: Dmitry Stogov <dmitry@zend.com> Fri, 11 Apr 2014 18:16:03 +0400
Parents: a6123151c7e67bc8355fa985182267aa4acb6bcc
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=e27eca90a58bdf90e33cd13290e4b2208a62bf7c
Log:
for some reason gcc -O2 compiled the previous code in unexpected way
Changed paths:
M Zend/zend_vm_def.h
M Zend/zend_vm_execute.h
Diff:
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index c90a4b4..dbb89e6 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -4212,7 +4212,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
{
USE_OPLINE
zend_free_op free_op1;
- zval *array_ptr, *array_ref;
+ zval *array_ptr, *array_ref, iterator;
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
zend_class_entry *ce = NULL;
@@ -4308,11 +4308,8 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
FREE_OP1_IF_VAR();
}
if (iter && EXPECTED(EG(exception) == NULL)) {
- zval iterator;
-
+ ZVAL_OBJ(&iterator, &iter->std);
array_ptr = array_ref = &iterator;
- ZVAL_OBJ(array_ptr, &iter->std);
-
} else {
if (OP1_TYPE == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
FREE_OP1_VAR_PTR();
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index dd23856..643ebd6 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -2947,7 +2947,7 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
{
USE_OPLINE
- zval *array_ptr, *array_ref;
+ zval *array_ptr, *array_ref, iterator;
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
zend_class_entry *ce = NULL;
@@ -3043,11 +3043,8 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
}
if (iter && EXPECTED(EG(exception) == NULL)) {
- zval iterator;
-
+ ZVAL_OBJ(&iterator, &iter->std);
array_ptr = array_ref = &iterator;
- ZVAL_OBJ(array_ptr, &iter->std);
-
} else {
if (IS_CONST == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
@@ -7931,7 +7928,7 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
{
USE_OPLINE
zend_free_op free_op1;
- zval *array_ptr, *array_ref;
+ zval *array_ptr, *array_ref, iterator;
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
zend_class_entry *ce = NULL;
@@ -8027,11 +8024,8 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (iter && EXPECTED(EG(exception) == NULL)) {
- zval iterator;
-
+ ZVAL_OBJ(&iterator, &iter->std);
array_ptr = array_ref = &iterator;
- ZVAL_OBJ(array_ptr, &iter->std);
-
} else {
if (IS_TMP_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
@@ -12960,7 +12954,7 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
{
USE_OPLINE
zend_free_op free_op1;
- zval *array_ptr, *array_ref;
+ zval *array_ptr, *array_ref, iterator;
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
zend_class_entry *ce = NULL;
@@ -13056,11 +13050,8 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
zval_ptr_dtor_nogc(free_op1.var);
}
if (iter && EXPECTED(EG(exception) == NULL)) {
- zval iterator;
-
+ ZVAL_OBJ(&iterator, &iter->std);
array_ptr = array_ref = &iterator;
- ZVAL_OBJ(array_ptr, &iter->std);
-
} else {
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
if (free_op1.var) {zval_ptr_dtor_nogc(free_op1.var);};
@@ -30482,7 +30473,7 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
{
USE_OPLINE
- zval *array_ptr, *array_ref;
+ zval *array_ptr, *array_ref, iterator;
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
zend_class_entry *ce = NULL;
@@ -30578,11 +30569,8 @@ static int ZEND_FASTCALL
ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
}
if (iter && EXPECTED(EG(exception) == NULL)) {
- zval iterator;
-
+ ZVAL_OBJ(&iterator, &iter->std);
array_ptr = array_ref = &iterator;
- ZVAL_OBJ(array_ptr, &iter->std);
-
} else {
if (IS_CV == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {