* Stefan Behnel <stefan...@behnel.de>, 2010-12-30, 08:37:
Works for me in 0.14.
Hmm, I just tested 0.14 and I get the very same warning.
The code in question (generated by Cython 0.14) is:
| static struct __pyx_vtabstruct_4eggs_Eggs *__pyx_vtabptr_4eggs_Eggs;
|
| [...]
|
| static int __Pyx_GetVtable(PyObject *dict, void *vtabptr) {
| [...]
| #if PY_VERSION_HEX >= 0x02070000 &&
!(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
| *(void **)vtabptr = PyCapsule_GetPointer(ob, 0);
| #else
| *(void **)vtabptr = PyCObject_AsVoidPtr(ob);
| #endif
| [...]
| }
|
| [...]
|
| if (__Pyx_GetVtable(__pyx_ptype_4eggs_Eggs->tp_dict, &__pyx_vtabptr_4eggs_Eggs) < 0) [...]
So a (struct __pyx_vtabstruct_4eggs_Eggs **) is casted to (void *), then
casted to (void **), and then dereferenced. This indeed violates C
aliasing rules.
--
Jakub Wilk
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org