------- Comment #4 from pinskia at gcc dot gnu dot org 2006-08-16 18:09 ------- Here as a reduced testcase as I can get it: typedef struct { int ob_refcnt; struct _typeobject *ob_type; }PyObject; typedef void (*destructor) (PyObject *); typedef struct _typeobject { destructor tp_dealloc; }PyTypeObject; static PyObject *__Pyx_GetExcValue (void); static PyObject *__Pyx_GetName (PyObject * dict, PyObject * name); static PyObject *__pyx_b; static char *__pyx_filename; static char **__pyx_f; static PyObject *__pyx_v_11environment_collattrs; static PyObject *__pyx_n_AttributeError; static PyObject *__pyx_n_getattr; __pyx_f_11 (PyObject * __pyx_v_self, PyObject * __pyx_kwds) { PyObject *__pyx_v_x; PyObject *__pyx_2 = 0; PyObject *__pyx_3 = 0; int __pyx_4; int __pyx_5; PyObject *__pyx_6 = 0; PyObject *__pyx_7 = 0; PyObject *__pyx_8 = 0; if (__pyx_5 < 0) __pyx_filename = __pyx_f[0]; if (__pyx_5) return; for (;;) { __pyx_2 = PyObject_GetIter (__pyx_v_11environment_collattrs); for (;;) { __pyx_3 = PyIter_Next (__pyx_2); if (!__pyx_3) break; __pyx_8 = __Pyx_GetName (__pyx_b, __pyx_n_AttributeError); __pyx_3 = __Pyx_GetExcValue (); if (--(__pyx_3)->ob_refcnt != 0); __pyx_3 = 0; __pyx_6 = __Pyx_GetName (__pyx_b, __pyx_n_getattr); __pyx_filename = __pyx_f[0]; if (!__pyx_7) goto __pyx_L19; __pyx_8 = PyObject_CallObject (__pyx_6, __pyx_7); if (--(__pyx_v_x)->ob_refcnt != 0); __pyx_v_x = __pyx_8; __pyx_filename = __pyx_f[0]; if (__pyx_4) { __pyx_8 = PyTuple_New (1); if (!__pyx_8) __pyx_filename = __pyx_f[0]; __pyx_3 = PyObject_CallObject (__pyx_7, __pyx_8); if (!__pyx_3) __pyx_filename = __pyx_f[0]; } __pyx_L19:; if ((__pyx_6) != ((void *) 0)) ((*((PyObject *) (__pyx_6))->ob_type-> tp_dealloc) ((PyObject *) ((PyObject *) (__pyx_6)))); if ((__pyx_7) != ((void *) 0)) if (--(__pyx_7)->ob_refcnt != 0); if ((__pyx_8) != ((void *) 0)) if (--(__pyx_8)->ob_refcnt != 0); if ((__pyx_3) != ((void *) 0)) --(__pyx_3)->ob_refcnt; __pyx_6 = __Pyx_GetName (__pyx_b, __pyx_n_AttributeError); __pyx_5 = PyErr_ExceptionMatches (__pyx_6); __pyx_7 = __Pyx_GetExcValue (); } } } static PyObject *__Pyx_GetName (PyObject * dict, PyObject * name){} static PyObject *__Pyx_GetExcValue (void){}
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28753