Skip to content

New warning: "‘subobj’ may be used uninitialized in this function" in Objects/bytes_methods.c#102941

@sobolevn

Description

@sobolevn

Example:
Снимок экрана 2023-03-23 в 12 05 59

This looks like a false-positive, because subobj is always initialized in stringlib_parse_args_finds(function_name, args, &subobj, &start, &end):

staticPyObject*
_Py_bytes_tailmatch(constchar*str, Py_ssize_tlen,
constchar*function_name, PyObject*args,
intdirection)
{
Py_ssize_tstart=0;
Py_ssize_tend=PY_SSIZE_T_MAX;
PyObject*subobj;
intresult;
if (!stringlib_parse_args_finds(function_name, args, &subobj, &start, &end))
returnNULL;
if (PyTuple_Check(subobj)){
Py_ssize_ti;
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

Metadata

Metadata

Assignees

Labels

interpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions