[Cython] memoryview of extension types: warnings with gcc, errors with g++

mark florisson markflorisson88 at gmail.com
Fri Nov 30 13:50:08 CET 2012


On 30 November 2012 00:45, Matěj Laitl <matej at laitl.cz> wrote:
> Hi list and Mark,
> it seems that C code with questionable casts is generated when using memory
> views of extension types. I get following warnings from gcc:
>
> extension_type_memoryview.c: In function ‘__pyx_pf_25extension_type_memoryview_test_getitem’:
> extension_type_memoryview.c:1468:15: warning: assignment from incompatible pointer type
> extension_type_memoryview.c: In function ‘__pyx_pf_25extension_type_memoryview_2test_getitem_typed’:
> extension_type_memoryview.c:1565:15: warning: assignment from incompatible pointer type
> extension_type_memoryview.c:1568:18: warning: assignment from incompatible pointer type
>
> And following errors if compiling in C++ mode with g++:
> extension_type_memoryview.c: In function ‘PyObject* __pyx_pf_25extension_type_memoryview_test_getitem(PyObject*)’:
> extension_type_memoryview.c:1468:213: error: cannot convert ‘__pyx_obj_25extension_type_memoryview_ExtensionType*’ to ‘PyObject*’ in assignment
> extension_type_memoryview.c: In function ‘PyObject* __pyx_pf_25extension_type_memoryview_2test_getitem_typed(PyObject*)’:
> extension_type_memoryview.c:1565:213: error: cannot convert ‘__pyx_obj_25extension_type_memoryview_ExtensionType*’ to ‘PyObject*’ in assignment
> extension_type_memoryview.c:1568:20: error: cannot convert ‘PyObject*’ to ‘__pyx_obj_25extension_type_memoryview_ExtensionType*’ in assignment
>
> I get exactly the same error when --cplus is passed to Cython and
> extension_type_memoryview.cpp is generated/compiled.
>
> ...which currently prevents my project combining C++ code with extension
> types and memory views to compile. :-( Test-case is attached. Cython 0.17.2.
>
> Regards,
>                 Matěj

Thanks for the report Matěj, I thought we had a test for that. I'll
look into it, should be an easy fix.


More information about the cython-devel mailing list