summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/typeobject.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index cf58911..0fccecd 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -4803,11 +4803,14 @@ PyType_Ready(PyTypeObject *type)
PyObject *b = PyTuple_GET_ITEM(bases, i);
if (PyType_Check(b) &&
(((PyTypeObject *)b)->tp_flags & Py_TPFLAGS_HEAPTYPE)) {
- PyErr_Format(PyExc_TypeError,
- "type '%.100s' is not dynamically allocated but "
- "its base type '%.100s' is dynamically allocated",
- type->tp_name, ((PyTypeObject *)b)->tp_name);
- goto error;
+ char buf[300];
+ PyOS_snprintf(buf, sizeof(buf),
+ "type '%.100s' is not dynamically allocated but "
+ "its base type '%.100s' is dynamically allocated",
+ type->tp_name, ((PyTypeObject *)b)->tp_name);
+ if (PyErr_Warn(PyExc_DeprecationWarning, buf) < 0)
+ goto error;
+ break;
}
}