System information:

    Ubuntu 14.04 x64
    gcc: Version 4.8.2 (Ubuntu 4.8.2-19ubuntu1), Target: x86_64-linux-gnu


To reproduce:

    # distutils: language = c++
    import numpy as np
    cimport numpy as np
    cimport cython


    cdef test_np_int64(const np.int64_t test_var):
        cdef np.int64_t error = test_var / 2


This fails to compile with the error:

    In function ‘const __pyx_t_5numpy_int64_t
  __Pyx_div___pyx_t_5numpy_int64_t__const__(__pyx_t_5numpy_int64_t,
__pyx_t_5numpy_int64_t)’:
    error: assignment of read-only variable ‘q’
         q -= ((r != 0) & ((r ^ b) < 0));


Using just a regular int type:

    # distutils: language = c++
    import numpy as np
    cimport numpy as np
    cimport cython


    cdef test_int(const int test_var):
        cdef int no_error = test_var / 2

Works as expected.

Fixing this is as simple as removing the const that is being complained
about. I assume this is a bug? I can't see why I wouldn't be allowed to
perform that operation?

Regards,

Patrick
_______________________________________________
cython-devel mailing list
cython-devel@python.org
https://mail.python.org/mailman/listinfo/cython-devel

Reply via email to