From: Yury Selivanov Date: Mon, 22 Jan 2018 01:47:04 +0000 (-0500) Subject: bpo-32591: Fix PyExc_WarnFormat call (follow-up commit) (#5263) X-Git-Tag: v3.7.0b1~142 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3510334361d6d39aad89e4e0d9bccd0695668583;p=python bpo-32591: Fix PyExc_WarnFormat call (follow-up commit) (#5263) The previous version was correct in terms of behaviour, but checking the return value of PyErr_WarnFormat allows to avoid calling PyErr_Occurred and silences the coverity alarm. --- diff --git a/Python/_warnings.c b/Python/_warnings.c index c3417cccb1..20ba7a1661 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -1191,11 +1191,10 @@ _PyErr_WarnUnawaitedCoroutine(PyObject *coro) PyErr_WriteUnraisable(coro); } if (!warned) { - PyErr_WarnFormat(PyExc_RuntimeWarning, 1, - "coroutine '%.50S' was never awaited", - ((PyCoroObject *)coro)->cr_qualname); - /* Maybe *that* got converted into an exception */ - if (PyErr_Occurred()) { + if (PyErr_WarnFormat(PyExc_RuntimeWarning, 1, + "coroutine '%.50S' was never awaited", + ((PyCoroObject *)coro)->cr_qualname) < 0) + { PyErr_WriteUnraisable(coro); } }