Issue #9036: Throughout the code base, Py_CHARMASK is used on 8-bit wide
signed/unsigned chars or on integers directly derived from those. In all cases, it could be replaced by a simple cast to (unsigned char). Reasons for the change: a) Make the comment more explicit. b) If char is unsigned, the cast is optimized away. c) If char is unsigned, gcc emits spurious "array subscript has type 'char'" warnings.
This commit is contained in:
parent
067425520e
commit
36d2e67db9
|
@ -134,13 +134,8 @@ PyAPI_FUNC(wchar_t *) _Py_char2wchar(char *);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Convert a possibly signed character to a nonnegative int */
|
/* Argument must be a char or an int in [-128, 127] or [0, 255]. */
|
||||||
/* XXX This assumes characters are 8 bits wide */
|
|
||||||
#ifdef __CHAR_UNSIGNED__
|
|
||||||
#define Py_CHARMASK(c) (c)
|
|
||||||
#else
|
|
||||||
#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff))
|
#define Py_CHARMASK(c) ((unsigned char)((c) & 0xff))
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "pyfpe.h"
|
#include "pyfpe.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue