Example:

This looks like a false-positive, because subobj is always initialized in stringlib_parse_args_finds(function_name, args, &subobj, &start, &end):
|
static PyObject * |
|
_Py_bytes_tailmatch(const char *str, Py_ssize_t len, |
|
const char *function_name, PyObject *args, |
|
int direction) |
|
{ |
|
Py_ssize_t start = 0; |
|
Py_ssize_t end = PY_SSIZE_T_MAX; |
|
PyObject *subobj; |
|
int result; |
|
|
|
if (!stringlib_parse_args_finds(function_name, args, &subobj, &start, &end)) |
|
return NULL; |
|
if (PyTuple_Check(subobj)) { |
|
Py_ssize_t i; |
|
for (i = 0; i < PyTuple_GET_SIZE(subobj); i++) { |
|
result = tailmatch(str, len, PyTuple_GET_ITEM(subobj, i), |
|
start, end, direction); |
Morever, it is used before in PyTuple_Check(subobj).
Any ideas on how to fix / silence it?
And why we get this warning only now? The code was not changed for 10 months.
Linked PRs
Example:

This looks like a false-positive, because
subobjis always initialized instringlib_parse_args_finds(function_name, args, &subobj, &start, &end):cpython/Objects/bytes_methods.c
Lines 770 to 786 in 87be8d9
Morever, it is used before in
PyTuple_Check(subobj).Any ideas on how to fix / silence it?
And why we get this warning only now? The code was not changed for 10 months.
Linked PRs
bytes_methods.c#102942