diff --git a/Objects/intobject.c b/Objects/intobject.c index 40f38ba343b..1d05a631c2a 100644 --- a/Objects/intobject.c +++ b/Objects/intobject.c @@ -675,15 +675,13 @@ int_lshift(PyIntObject *v, PyIntObject *w) return NULL; return PyInt_FromLong(0L); } - c = a < 0 ? ~a : a; - c >>= LONG_BIT - 1 - b; - if (c) { + c = a << b; + if (a != Py_ARITHMETIC_RIGHT_SHIFT(long, c, b)) { if (PyErr_Warn(PyExc_DeprecationWarning, "x<