Use _PyEval_SliceIndex to handle list.index() calls with
huge start and stop arguments. Add tests.
diff --git a/Objects/listobject.c b/Objects/listobject.c
index a70ac5f..b059420 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -1832,7 +1832,9 @@
int i, start=0, stop=self->ob_size;
PyObject *v;
- if (!PyArg_ParseTuple(args, "O|ii:index", &v, &start, &stop))
+ if (!PyArg_ParseTuple(args, "O|O&O&:index", &v,
+ _PyEval_SliceIndex, &start,
+ _PyEval_SliceIndex, &stop))
return NULL;
if (start < 0) {
start += self->ob_size;