#include "parts.h" static PyObject* test_gc_control(PyObject *self, PyObject *Py_UNUSED(ignored)) { … } static PyObject * without_gc(PyObject *Py_UNUSED(self), PyObject *obj) { … } static void slot_tp_del(PyObject *self) { … } static PyObject * with_tp_del(PyObject *self, PyObject *args) { … } struct gc_visit_state_basic { … }; static int gc_visit_callback_basic(PyObject *obj, void *arg) { … } static PyObject * test_gc_visit_objects_basic(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored)) { … } static int gc_visit_callback_exit_early(PyObject *obj, void *arg) { … } static PyObject * test_gc_visit_objects_exit_early(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(ignored)) { … } ObjExtraData; static PyObject * obj_extra_data_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { … } static PyObject ** obj_extra_data_get_extra_storage(PyObject *self) { … } static PyObject * obj_extra_data_get(PyObject *self, void *Py_UNUSED(ignored)) { … } static int obj_extra_data_set(PyObject *self, PyObject *newval, void *Py_UNUSED(ignored)) { … } static PyGetSetDef obj_extra_data_getset[] = …; static int obj_extra_data_traverse(PyObject *self, visitproc visit, void *arg) { … } static int obj_extra_data_clear(PyObject *self) { … } static void obj_extra_data_dealloc(PyObject *self) { … } static PyType_Slot ObjExtraData_Slots[] = …; static PyType_Spec ObjExtraData_TypeSpec = …; static PyMethodDef test_methods[] = …; int _PyTestCapi_Init_GC(PyObject *mod) { … }