When returning an error from jcompile() (which is passed through by

PyNode_Compile()), make sure that an exception is actually set --
otherwise someone stomped on our error.  [2.0 checkin of this fix.]
This commit is contained in:
Guido van Rossum 2000-08-07 19:22:43 +00:00
parent ed473a46fc
commit 6c2f0c73a1

View file

@ -3293,6 +3293,14 @@ jcompile(node *n, char *filename, struct compiling *base)
Py_XDECREF(filename);
Py_XDECREF(name);
}
else if (!PyErr_Occurred()) {
/* This could happen if someone called PyErr_Clear() after an
error was reported above. That's not supposed to happen,
but I just plugged one case and I'm not sure there can't be
others. In that case, raise SystemError so that at least
it gets reported instead dumping core. */
PyErr_SetString(PyExc_SystemError, "lost syntax error");
}
com_free(&sc);
return co;
}