mirror of https://github.com/python/cpython
bpo-40941: Fix fold_tuple_on_constants() compiler warnings (GH-22378)
Add explicit casts to fix compiler warnings in fold_tuple_on_constants(). The limit of constants per code is now INT_MAX, rather than UINT_MAX.
This commit is contained in:
parent
7f413a5d95
commit
71f2ff4ccf
|
@ -6100,13 +6100,11 @@ fold_tuple_on_constants(struct instr *inst,
|
||||||
PyTuple_SET_ITEM(newconst, i, constant);
|
PyTuple_SET_ITEM(newconst, i, constant);
|
||||||
}
|
}
|
||||||
Py_ssize_t index = PyList_GET_SIZE(consts);
|
Py_ssize_t index = PyList_GET_SIZE(consts);
|
||||||
#if SIZEOF_SIZE_T > SIZEOF_INT
|
if ((size_t)index >= (size_t)INT_MAX - 1) {
|
||||||
if ((size_t)index >= UINT_MAX - 1) {
|
|
||||||
Py_DECREF(newconst);
|
Py_DECREF(newconst);
|
||||||
PyErr_SetString(PyExc_OverflowError, "too many constants");
|
PyErr_SetString(PyExc_OverflowError, "too many constants");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (PyList_Append(consts, newconst)) {
|
if (PyList_Append(consts, newconst)) {
|
||||||
Py_DECREF(newconst);
|
Py_DECREF(newconst);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -6116,7 +6114,7 @@ fold_tuple_on_constants(struct instr *inst,
|
||||||
inst[i].i_opcode = NOP;
|
inst[i].i_opcode = NOP;
|
||||||
}
|
}
|
||||||
inst[n].i_opcode = LOAD_CONST;
|
inst[n].i_opcode = LOAD_CONST;
|
||||||
inst[n].i_oparg = index;
|
inst[n].i_oparg = (int)index;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue