fix signed/unsigned mismatch in struct
diff --git a/Modules/_struct.c b/Modules/_struct.c
index 95b5e0b..a114216 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -763,7 +763,7 @@
return -1;
i = f->size;
#ifdef PY_STRUCT_RANGE_CHECKING
- if (i != SIZEOF_LONG && x >= (1 << (i * 8)))
+ if (i != SIZEOF_LONG && x >= (1 << (((unsigned int)i) * 8)))
return _range_error(f->format, f->size, 1);
#endif
do {
@@ -975,7 +975,7 @@
return -1;
i = f->size;
#ifdef PY_STRUCT_RANGE_CHECKING
- if (i != SIZEOF_LONG && x >= (1 << (i * 8)))
+ if (i != SIZEOF_LONG && x >= (1 << (((unsigned int)i) * 8)))
return _range_error(f->format, f->size, 1);
#endif
do {