diff -r 82607e7c24c7 Include/fileobject.h --- a/Include/fileobject.h Fri Nov 11 12:07:48 2016 +0200 +++ b/Include/fileobject.h Fri Nov 11 16:00:35 2016 +0200 @@ -37,7 +37,7 @@ PyAPI_DATA(PyTypeObject) PyStdPrinter_Ty /* A routine to check if a file descriptor can be select()-ed. */ #ifdef HAVE_SELECT - #define _PyIsSelectable_fd(FD) (((FD) >= 0) && ((FD) < FD_SETSIZE)) + #define _PyIsSelectable_fd(FD) ((unsigned int)(FD) < (unsigned int)FD_SETSIZE) #else #define _PyIsSelectable_fd(FD) (1) #endif /* HAVE_SELECT */ diff -r 82607e7c24c7 Modules/selectmodule.c --- a/Modules/selectmodule.c Fri Nov 11 12:07:48 2016 +0200 +++ b/Modules/selectmodule.c Fri Nov 11 16:00:35 2016 +0200 @@ -68,8 +68,8 @@ typedef struct { static void reap_obj(pylist fd2obj[FD_SETSIZE + 1]) { - int i; - for (i = 0; i < FD_SETSIZE + 1 && fd2obj[i].sentinel >= 0; i++) { + unsigned int i; + for (i = 0; i < (unsigned int)FD_SETSIZE + 1 && fd2obj[i].sentinel >= 0; i++) { Py_CLEAR(fd2obj[i].obj); } fd2obj[0].sentinel = -1; @@ -83,7 +83,7 @@ static int seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE + 1]) { int max = -1; - int index = 0; + unsigned int index = 0; Py_ssize_t i; PyObject* fast_seq = NULL; PyObject* o = NULL; @@ -120,7 +120,7 @@ seq2set(PyObject *seq, fd_set *set, pyli FD_SET(v, set); /* add object and its file descriptor to the list */ - if (index >= FD_SETSIZE) { + if (index >= (unsigned int)FD_SETSIZE) { PyErr_SetString(PyExc_ValueError, "too many file descriptors in select()"); goto finally;