diff --git a/Python/_warnings.c b/Python/_warnings.c index 834ceb18459..fd3ca60e5da 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -1129,6 +1129,23 @@ PyErr_WarnFormat(PyObject *category, Py_ssize_t stack_level, return res; } +static int +_PyErr_WarnFormat(PyObject *source, PyObject *category, Py_ssize_t stack_level, + const char *format, ...) +{ + int res; + va_list vargs; + +#ifdef HAVE_STDARG_PROTOTYPES + va_start(vargs, format); +#else + va_start(vargs); +#endif + res = _PyErr_WarnFormatV(source, category, stack_level, format, vargs); + va_end(vargs); + return res; +} + int PyErr_ResourceWarning(PyObject *source, Py_ssize_t stack_level, const char *format, ...) @@ -1297,9 +1314,9 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro) PyErr_WriteUnraisable(coro); } if (!warned) { - if (PyErr_WarnFormat(PyExc_RuntimeWarning, 1, - "coroutine '%.50S' was never awaited", - ((PyCoroObject *)coro)->cr_qualname) < 0) + if (_PyErr_WarnFormat(coro, PyExc_RuntimeWarning, 1, + "coroutine '%S' was never awaited", + ((PyCoroObject *)coro)->cr_qualname) < 0) { PyErr_WriteUnraisable(coro); }