diff options
-rw-r--r-- | Modules/_struct.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Modules/_struct.c b/Modules/_struct.c index 1491b2e779..6a3c11f4e6 100644 --- a/Modules/_struct.c +++ b/Modules/_struct.c @@ -309,24 +309,24 @@ static int _range_error(const formatdef *f, int is_unsigned) { if (is_unsigned == 0) { - long smallest = 0, largest = 0; + Py_ssize_t smallest, largest = 0; Py_ssize_t i = f->size * 8; while (--i > 0) { - smallest = (smallest * 2) - 1; largest = (largest * 2) + 1; } + smallest = -largest - 1; PyErr_Format(StructError, - "'%c' format requires %ld <= number <= %ld", + "'%c' format requires %zd <= number <= %zd", f->format, smallest, largest); } else { - unsigned long largest = 0; + size_t largest = 0; Py_ssize_t i = f->size * 8; while (--i >= 0) largest = (largest * 2) + 1; PyErr_Format(StructError, - "'%c' format requires 0 <= number <= %lu", + "'%c' format requires 0 <= number <= %zu", f->format, largest); } |