Be a bit more careful with printing a warning for a failed __del__.
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 5776898..191b556 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -404,8 +404,11 @@
object *res = call_object(del, (object *)NULL);
DECREF(del);
if (res == NULL) {
- writestring("exception in __del__ method ignored\n",
- sysget("stderr"));
+ PyObject *f = sysget("stderr");
+ err_clear();
+ if (f != NULL)
+ writestring(
+ "exception in __del__ method ignored\n", f);
}
else
DECREF(res);