you already made silent break for N << 64 and N >> 64, but it may be
explained as more consistent behaviour.
I don't see a big difference with negative shifts.

The real thing that I don't like - is a "boolean" result. Warning is not a
big problem.

Thanks. Dmitry.



On Tue, Sep 16, 2014 at 1:23 PM, Andrea Faulds <a...@ajf.me> wrote:

>
> On 16 Sep 2014, at 10:16, Dmitry Stogov <dmi...@zend.com> wrote:
>
> > Shifts by negative number may make sense. (N << -1) => (N >> 1)
> > At least receiving "false" from shift is not very pleasant.
>
> The problem is that changing from the current behaviour (undefined in C,
> but typically a shift by (PHP_INT_MAX - $bits)) to do what you’d expect
> (shift in the opposite direction) would be a silent BC break. I think it’s
> better to just stop it altogether and raise an E_WARNING, where it’s at
> least obvious something went wrong, than change this behaviour silently.
>
> > In the patch you use SIZEOF_LONG. It probably should be changed to
> > SIZEOF_ZEND_LONG.
>
> Will fix, thanks for spotting that.
>
> --
> Andrea Faulds
> http://ajf.me/
>
>
>
>
>

Reply via email to