On Mon, Feb 17, 2014 at 6:36 PM, victor.stinner <python-check...@python.org> wrote: > http://hg.python.org/cpython/rev/79ccf36b0fd0 > changeset: 89239:79ccf36b0fd0 > user: Victor Stinner <victor.stin...@gmail.com> > date: Tue Feb 18 01:35:40 2014 +0100 > summary: > Close #20656: Fix select.select() on OpenBSD 64-bit > > files: > Modules/selectmodule.c | 22 ++++++++++++---------- > 1 files changed, 12 insertions(+), 10 deletions(-)
This changeset caused a compile warning on 32-bit Windows: ..\Modules\selectmodule.c(238): warning C4244: '=' : conversion from 'time_t' to 'long', possible loss of data [P:\ath\to\cpython\PCbuild\select.vcxproj] > diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c > --- a/Modules/selectmodule.c > +++ b/Modules/selectmodule.c > @@ -212,11 +212,18 @@ > return NULL; > } > else { > -#ifdef MS_WINDOWS > + /* On OpenBSD 5.4, timeval.tv_sec is a long. > + * Example: long is 64-bit, whereas time_t is 32-bit. */ > time_t sec; > - if (_PyTime_ObjectToTimeval(tout, &sec, &tv.tv_usec, > + /* On OS X 64-bit, timeval.tv_usec is an int (and thus still 4 > + bytes as required), but no longer defined by a long. */ > + long usec; > + if (_PyTime_ObjectToTimeval(tout, &sec, &usec, > _PyTime_ROUND_UP) == -1) > return NULL; > +#ifdef MS_WINDOWS > + /* On Windows, timeval.tv_sec is a long (32 bit), > + * whereas time_t can be 64-bit. */ > assert(sizeof(tv.tv_sec) == sizeof(long)); > #if SIZEOF_TIME_T > SIZEOF_LONG > if (sec > LONG_MAX) { > @@ -225,16 +232,11 @@ > return NULL; > } > #endif > - tv.tv_sec = (long)sec; > #else > - /* 64-bit OS X has struct timeval.tv_usec as an int (and thus still 4 > - bytes as required), but no longer defined by a long. */ > - long tv_usec; > - if (_PyTime_ObjectToTimeval(tout, &tv.tv_sec, &tv_usec, > - _PyTime_ROUND_UP) == -1) > - return NULL; > - tv.tv_usec = tv_usec; > + assert(sizeof(tv.tv_sec) >= sizeof(sec)); > #endif > + tv.tv_sec = sec; This is the offending line. I'm not sure how best to fix it, so I'm just pointing it out :) -- Zach _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com