From: Victor Stinner Date: Mon, 15 Jul 2013 23:02:12 +0000 (+0200) Subject: Issue #18408: add more assertions on PyErr_Occurred() in ceval.c to detect bugs X-Git-Tag: v3.4.0a1~198 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f243ee4055c8ed334e048e494814d557a02f72b3;p=python Issue #18408: add more assertions on PyErr_Occurred() in ceval.c to detect bugs earlier --- diff --git a/Objects/abstract.c b/Objects/abstract.c index 6896600eba..6c8c561eac 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2111,8 +2111,7 @@ PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) "NULL result without error in PyObject_Call"); } #else - if (result == NULL) - assert(PyErr_Occurred()); + assert(result != NULL || PyErr_Occurred()); #endif return result; } diff --git a/Python/ceval.c b/Python/ceval.c index 5a35524a24..2d84c09875 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4216,6 +4216,8 @@ call_function(PyObject ***pp_stack, int oparg READ_TIMESTAMP(*pintr1); Py_DECREF(func); } + assert((x != NULL && !PyErr_Occurred()) + || (x == NULL && PyErr_Occurred())); /* Clear the stack of the function object. Also removes the arguments in case they weren't consumed already @@ -4509,6 +4511,8 @@ ext_call_fail: Py_XDECREF(callargs); Py_XDECREF(kwdict); Py_XDECREF(stararg); + assert((result != NULL && !PyErr_Occurred()) + || (result == NULL && PyErr_Occurred())); return result; }