[Gustavo Niemeyer] > Ohh.. I wasn't aware about this case, since I get no errors at all at > this line. I think Martin is using a more-recent version of gcc than most people here. Everyone on Windows (MSVC) sees these warnings, though. > Do you see any others? Windows doesn't complain about the ones your compiler complains about; it complains about 17 others, listed here (although the line numbers have probably changed in the last 3 months <wink>): http://mail.python.org/pipermail/python-dev/2003-October/039059.html I personally get these: > > Modules/_sre.c:381: warning: comparison is always true due to limited > range of data type > Modules/_sre.c:383: warning: comparison is always true due to limited > range of data type > Modules/_sre.c:390: warning: comparison is always true due to limited > range of data type > Modules/_sre.c:392: warning: comparison is always true due to limited > range of data type > Modules/_sre.c: In function `sre_charset': > Modules/_sre.c:487: warning: comparison is always true due to limited > range of data type > Modules/_sre.c: In function `sre_ucharset': > Modules/_sre.c:487: warning: comparison is always true due to limited > range of data type > > Suggestions welcome. Upgrade to Windows <heh>. Most of those seem to come from lines of the form SRE_LOC_IS_WORD((int) ptr[-1]) : 0; where SRE_CHAR* ptr and either #define SRE_CHAR unsigned char or #define SRE_CHAR Py_UNICODE and #define SRE_LOC_IS_WORD(ch) (SRE_LOC_IS_ALNUM((ch)) || (ch) == '_') #define SRE_LOC_IS_ALNUM(ch) ((ch) < 256 ? isalnum((ch)) : 0) So it's apparently bitching about (((int) ptr[-1])) < 256 when the "unsigned char" expansion of SRE_CHAR is in effect. I suppose that could be repaired by defining SRE_LOC_IS_ALNUM differently depending on how SRE_CHAR is defined. The warning on line 487 comes from if (ch < 65536) where SRE_CODE ch and SRE_CODE is unsigned short or unsigned long, depending on Py_UNICODE_WIDE. This warning is really irritating. I suppose #if defined(Py_UNICODE_WIDE) || SIZEOF_SHORT > 2 if (ch < 65536) #endif block = ((unsigned char*)set)[ch >> 8]; #if defined(Py_UNICODE_WIDE) || SIZEOF_SHORT > 2 else block = -1; #endif would shut it up, but that's sure ugly.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4