]> granicus.if.org Git - php/commitdiff
Fix compilation error on mac with -Wshift-negative-value
authorTyson Andre <tysonandre775@hotmail.com>
Sat, 21 Mar 2020 15:56:44 +0000 (11:56 -0400)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 23 Mar 2020 08:24:26 +0000 (09:24 +0100)
Fix for mac OS build error seen in ccc49ead681add7bdf6a021c7a3420aff543bc1e
when shifting -1 (max argument count?)

```
ext/opcache/jit/zend_jit_trace.c:1668:2:
error: shifting a negative signed value is undefined
[-Werror,-Wshift-negative-value]
        TRACE_FRAME_INIT(frame, op_array, 0, -1);
```

Closes GH-5284.

ext/opcache/jit/zend_jit_internal.h

index 4a71ff58f5e22c3f7ffbb049a8060db732f04538..60f9520d0b6e0b6e915898c518525c1a1aa879ac 100644 (file)
@@ -352,7 +352,7 @@ struct _zend_jit_trace_stack_frame {
                _frame->call = NULL; \
                _frame->prev = NULL; \
                _frame->func = (const zend_function*)_func; \
-               _frame->_info = (uint32_t)((((int)(num_args)) << TRACE_FRAME_SHIFT_NUM_ARGS) & TRACE_FRAME_MASK_NUM_ARGS); \
+               _frame->_info = (((uint32_t)(num_args)) << TRACE_FRAME_SHIFT_NUM_ARGS) & TRACE_FRAME_MASK_NUM_ARGS; \
                if (nested) { \
                        _frame->_info |= TRACE_FRAME_MASK_NESTED; \
                }; \