Hi everybody, Cython 0.21.1, from Debian Sid, and Cython 0.22, from Gentoo, produce invalid C Code for the following .pyx file:
$ cat test.pyx
cimport cpython
cdef extern from "test.h":
cdef void foo(int i = 0)
def bar(self):
foo(0)
$ cat test.h
void foo(int i);
$ cython test.pyx
$ gcc -c test.c -I/usr/include/python3.4m
test.c: In function ‘__pyx_pf_4test_bar’:
test.c:659:35: error: storage size of ‘__pyx_t_1’ isn’t known
struct __pyx_opt_args_4test_foo __pyx_t_1;
$ clang test.c -I/usr/include/python3.4m
test.c:659:35: error: variable has incomplete type 'struct
__pyx_opt_args_4test_foo'
struct __pyx_opt_args_4test_foo __pyx_t_1;
test.c:659:10: note: forward declaration of 'struct
__pyx_opt_args_4test_foo'
struct __pyx_opt_args_4test_foo __pyx_t_1;
Note that this is a minimal example; removing anything from test.pyx
fixes the issue (the 'cimport' statement, the default value for int i,
and the call to foo). The issue also occurs with --cplus.
Happy debugging,
mic_e
signature.asc
Description: OpenPGP digital signature
_______________________________________________ cython-devel mailing list [email protected] https://mail.python.org/mailman/listinfo/cython-devel
