diff options
Diffstat (limited to 'Zend/zend_operators.c')
| -rw-r--r-- | Zend/zend_operators.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 384884965d..14019a5afa 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1757,7 +1757,8 @@ ZEND_API int ZEND_FASTCALL shift_left_function(zval *result, zval *op1, zval *op zval_ptr_dtor(result); } - ZVAL_LONG(result, op1_lval << op2_lval); + /* Perform shift on unsigned numbers to get well-defined wrap behavior. */ + ZVAL_LONG(result, (zend_long) ((zend_ulong) op1_lval << op2_lval)); return SUCCESS; } /* }}} */ |
