[issue9020] 2.7: eval hangs on AIX
report at bugs.python.org
Sat Jun 19 14:16:53 CEST 2010
Antoine Pitrou <pitrou at free.fr> added the comment:
> Why do you say that? If c is -1, then Py_CHARMASK(c) is 255, which is a
> positive integer.
What srid seems to be saying is that chars are unsigned on AIX, and therefore Py_CHARMASK() returns -1. Hence his patch proposal.
Of course, it is dubious why EOF is not tested separately rather than passing it to Py_ISALNUM(). Micro-optimization? At least a comment should be added.
Also, really, the Py_CHARMASK() macro seems poorly specified. It claims to "convert a possibly signed character to a nonnegative int", but this is wrong: it doesn't convert to an int at all. Furthermore, it does a cast in one branch but not in the other, which can give bad surprises as here.
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list