* 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

Reply via email to