]> granicus.if.org Git - php/commitdiff
Fixed compilation warnings
authorDmitry Stogov <dmitry@zend.com>
Wed, 25 Feb 2015 20:20:47 +0000 (23:20 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 25 Feb 2015 20:20:47 +0000 (23:20 +0300)
Zend/zend_execute.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_gen.php

index 0cf2f2c53eba901e0c564a5f33e0d6e61f57b307..6d679f0563162edd44316552ca079968805a931e 100644 (file)
@@ -511,22 +511,19 @@ static inline void zend_assign_to_variable_reference(zval *variable_ptr, zval *v
 }
 
 /* this should modify object only if it's empty */
-static inline int make_real_object(zval **object_ptr)
+static inline int make_real_object(zval *object)
 {
-       zval *object = *object_ptr;
-
-       ZVAL_DEREF(object);
        if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-               if (EXPECTED(Z_TYPE_P(object) <= IS_FALSE)
-                       || (Z_TYPE_P(object) == IS_STRING && Z_STRLEN_P(object) == 0)) {
+               if (EXPECTED(Z_TYPE_P(object) <= IS_FALSE)) {
+                       /* nothing to destroy */
+               } else if (EXPECTED((Z_TYPE_P(object) == IS_STRING && Z_STRLEN_P(object) == 0))) {
                        zval_ptr_dtor_nogc(object);
-                       object_init(object);
-                       zend_error(E_WARNING, "Creating default object from empty value");
                } else {
                        return 0;
                }
+               object_init(object);
+               zend_error(E_WARNING, "Creating default object from empty value");
        }
-       *object_ptr = object;
        return 1;
 }
 
@@ -933,7 +930,7 @@ static zend_always_inline void zend_assign_to_object(zval *retval, zval *object,
                zend_object *zobj = Z_OBJ_P(object);
                zval *property;
 
-               if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+               if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                        property = OBJ_PROP(zobj, prop_offset);
                        if (Z_TYPE_P(property) != IS_UNDEF) {
 fast_assign:
@@ -1578,7 +1575,7 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
                zend_object *zobj = Z_OBJ_P(container);
                zval *retval;
 
-               if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+               if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                        retval = OBJ_PROP(zobj, prop_offset);
                        if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                ZVAL_INDIRECT(result, retval);
@@ -2022,7 +2019,7 @@ static zend_execute_data *zend_vm_stack_copy_call_frame(zend_execute_data *call,
 
 static zend_always_inline void zend_vm_stack_extend_call_frame(zend_execute_data **call, uint32_t passed_args, uint32_t additional_args) /* {{{ */
 {
-       if (EXPECTED(EG(vm_stack_end) - EG(vm_stack_top) > additional_args)) {
+       if (EXPECTED((uint32_t)(EG(vm_stack_end) - EG(vm_stack_top)) > additional_args)) {
                EG(vm_stack_top) += additional_args;
        } else {
                *call = zend_vm_stack_copy_call_frame(*call, passed_args, additional_args);
index 04b1d1d6962585d0845023764d00b15892a9d187..52590853ee2984fe7a5cd59db3425aa4cc8b9068 100644 (file)
@@ -366,7 +366,8 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMPVAR|
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -765,7 +766,8 @@ ZEND_VM_HELPER_EX(zend_pre_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|C
 
        do {
                if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -854,7 +856,8 @@ ZEND_VM_HELPER_EX(zend_post_incdec_property_helper, VAR|UNUSED|CV, CONST|TMPVAR|
 
        do {
                if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -1440,7 +1443,7 @@ ZEND_VM_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|CV)
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -1555,7 +1558,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR|CV)
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
index d4e29353fc118d811a162740d2875b2012235d52..b9bcbf17000aa04fa70d38b4121cfb6f889fa4ef 100644 (file)
@@ -307,6 +307,7 @@ static zend_uchar zend_user_opcodes[256] = {0,
 };
 
 static opcode_handler_t zend_vm_get_opcode_handler(zend_uchar opcode, const zend_op* op);
+static int ZEND_FASTCALL  ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS);
 
 
 #undef OPLINE
@@ -323,12 +324,12 @@ static opcode_handler_t zend_vm_get_opcode_handler(zend_uchar opcode, const zend
 #undef HANDLE_EXCEPTION
 #undef HANDLE_EXCEPTION_LEAVE
 #define CHECK_EXCEPTION() LOAD_OPLINE()
-#define HANDLE_EXCEPTION() LOAD_OPLINE(); ZEND_VM_CONTINUE()
+#define HANDLE_EXCEPTION() LOAD_OPLINE(); return ZEND_HANDLE_EXCEPTION_SPEC_HANDLER(execute_data)
 #define HANDLE_EXCEPTION_LEAVE() LOAD_OPLINE(); ZEND_VM_LEAVE()
-#define ZEND_VM_CONTINUE()         return  0
+#define ZEND_VM_CONTINUE()         return  EX(opline)->handler(execute_data)
 #define ZEND_VM_RETURN()           return -1
-#define ZEND_VM_ENTER()            return  1
-#define ZEND_VM_LEAVE()            return  2
+#define ZEND_VM_ENTER()            return  EG(current_execute_data)->opline->handler(EG(current_execute_data));
+#define ZEND_VM_LEAVE()            return  EG(current_execute_data)->opline->handler(EG(current_execute_data));
 #define ZEND_VM_DISPATCH(opcode, opline) return zend_vm_get_opcode_handler(opcode, opline)(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
 
 #define ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_INTERNAL execute_data
@@ -4269,7 +4270,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -4334,7 +4335,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -7211,7 +7212,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HAN
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -7276,7 +7277,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HA
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -8363,7 +8364,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCODE
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -8429,7 +8430,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CONST_TMPVAR_HANDLER(ZEND_OPCOD
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -9770,7 +9771,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HA
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -10850,7 +10851,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDL
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -11273,7 +11274,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_TMP_TMPVAR_HANDLER(ZEND_OPCODE_H
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -12951,7 +12952,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -13348,7 +13350,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
 
        do {
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -13436,7 +13439,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
 
        do {
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -13630,7 +13634,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -15832,7 +15836,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -16229,7 +16234,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
 
        do {
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -16317,7 +16323,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
 
        do {
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -16511,7 +16518,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -17350,7 +17357,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMPVAR(int (*
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -17749,7 +17757,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMPVAR(incdec_
 
        do {
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -17838,7 +17847,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMPVAR(incdec
 
        do {
                if (IS_VAR != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -18033,7 +18043,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_VAR_TMPVAR_HANDLER(ZEND_OPCODE_H
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -18753,7 +18763,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CONST(int
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -19115,7 +19126,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_CONST(incde
 
        do {
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -19203,7 +19215,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_CONST(incd
 
        do {
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -19296,7 +19309,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -19410,7 +19423,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCOD
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -20961,7 +20974,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_CV(int (*b
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -21323,7 +21337,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_CV(incdec_t
 
        do {
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -21411,7 +21426,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_CV(incdec_
 
        do {
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -21504,7 +21520,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HA
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -21618,7 +21634,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_H
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -22349,7 +22365,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_TMPVAR(int
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -22712,7 +22729,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_TMPVAR(incd
 
        do {
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -22801,7 +22819,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_TMPVAR(inc
 
        do {
                if (IS_UNUSED != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -22895,7 +22914,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCOD
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -23010,7 +23029,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMPVAR_HANDLER(ZEND_OPCO
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -25412,7 +25431,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CONST(int (*bi
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -25809,7 +25829,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_CONST(incdec_t
 
        do {
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -25897,7 +25918,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_CONST(incdec_t
 
        do {
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -26294,7 +26316,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -26408,7 +26430,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HA
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -29801,7 +29823,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_CV(int (*binar
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -30198,7 +30221,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_CV(incdec_t inc
 
        do {
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -30286,7 +30310,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_CV(incdec_t in
 
        do {
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -30510,7 +30535,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -30624,7 +30649,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDL
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -31853,7 +31878,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_TMPVAR(int (*b
                value = get_zval_ptr((opline+1)->op1_type, (opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
 
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to assign property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(EX_VAR(opline->result.var));
@@ -32252,7 +32278,8 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_TMPVAR(incdec_t
 
        do {
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                if (UNEXPECTED(RETURN_VALUE_USED(opline))) {
                                        ZVAL_NULL(retval);
@@ -32341,7 +32368,8 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_TMPVAR(incdec_
 
        do {
                if (IS_CV != IS_UNUSED && UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
-                       if (UNEXPECTED(!make_real_object(&object))) {
+                       ZVAL_DEREF(object);
+                       if (UNEXPECTED(!make_real_object(object))) {
                                zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
                                ZVAL_NULL(retval);
                                break;
@@ -32566,7 +32594,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_R_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_HA
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -32681,7 +32709,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_CV_TMPVAR_HANDLER(ZEND_OPCODE_H
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -34469,7 +34497,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CONST_HANDLER(ZEND_OPCOD
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -36124,7 +36152,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_CV_HANDLER(ZEND_OPCODE_H
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
@@ -36786,7 +36814,7 @@ static int ZEND_FASTCALL  ZEND_FETCH_OBJ_IS_SPEC_TMPVAR_TMPVAR_HANDLER(ZEND_OPCO
                        EXPECTED(zobj->ce == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) {
                        uint32_t prop_offset = (uint32_t)(intptr_t)CACHED_PTR(Z_CACHE_SLOT_P(offset) + sizeof(void*));
 
-                       if (EXPECTED(prop_offset != ZEND_DYNAMIC_PROPERTY_OFFSET)) {
+                       if (EXPECTED(prop_offset != (uint32_t)ZEND_DYNAMIC_PROPERTY_OFFSET)) {
                                retval = OBJ_PROP(zobj, prop_offset);
                                if (EXPECTED(Z_TYPE_P(retval) != IS_UNDEF)) {
                                        ZVAL_COPY(EX_VAR(opline->result.var), retval);
index 7d435fa4cb0ea27f1fea93be23a66baf2643ec2b..cad9e8b75b7d5ca2dec97b032a4db0cca63c8a96 100644 (file)
@@ -967,7 +967,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
                                                        out($f,"#undef LOAD_OPLINE\n");
                                                        out($f,"#undef SAVE_OPLINE\n");
                                                        out($f,"#define OPLINE opline\n");
-                                                       out($f,"#define DCL_OPLINE zend_op *opline;\n");
+                                                       out($f,"#define DCL_OPLINE const zend_op *opline;\n");
                                                        out($f,"#define USE_OPLINE\n");
                                                        out($f,"#define LOAD_OPLINE() opline = EX(opline)\n");
                                                        out($f,"#define SAVE_OPLINE() EX(opline) = opline\n");
@@ -993,7 +993,7 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
                                                        out($f,"#undef LOAD_OPLINE\n");
                                                        out($f,"#undef SAVE_OPLINE\n");
                                                        out($f,"#define OPLINE opline\n");
-                                                       out($f,"#define DCL_OPLINE zend_op *opline;\n");
+                                                       out($f,"#define DCL_OPLINE const zend_op *opline;\n");
                                                        out($f,"#define USE_OPLINE\n");
                                                        out($f,"#define LOAD_OPLINE() opline = EX(opline)\n");
                                                        out($f,"#define SAVE_OPLINE() EX(opline) = opline\n");