diff --git a/Python/ceval.c b/Python/ceval.c index 490b653f132a6a..06e466497b65c5 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1865,6 +1865,10 @@ _PyEvalFramePushAndInit_Ex(PyThreadState *tstate, _PyStackRef func, PyObject *kwnames = NULL; _PyStackRef *newargs; PyObject *const *object_array = NULL; + #if defined(__GNUC__) && !defined(__clang__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" + #endif _PyStackRef stack_array[8]; if (has_dict) { object_array = _PyStack_UnpackDict(tstate, _PyTuple_ITEMS(callargs), nargs, kwargs, &kwnames); @@ -1904,8 +1908,11 @@ _PyEvalFramePushAndInit_Ex(PyThreadState *tstate, _PyStackRef func, _PyStack_UnpackDict_FreeNoDecRef(object_array, kwnames); } else if (nargs > 8) { - PyMem_Free((void *)newargs); + PyMem_Free((void *)newargs); } + #if defined(__GNUC__) && !defined(__clang__) + #pragma GCC diagnostic pop + #endif /* No need to decref func here because the reference has been stolen by _PyEvalFramePushAndInit. */