[Cython] cython crash: default parameters in methods of template cppclass

Simon Anders anders at embl.de
Tue Mar 22 15:34:02 CET 2011


Hi,

I found a little bug in Cython 0.14.1.

The following causes the Cython compiler to throw an exception:

---8<---
cdef extern from "foo.h":
     cdef cppclass foo[ T ]:
        bar( int b = 0 )

cdef foo[ int ] a
a.bar( 1 )
---8<---

The exception is "AttributeError: 'CFuncType' object has no attribute 
'op_arg_struct'", thrown in line 3044, in generate_result_code. Full 
stack trace attached.

The file compiles without crash if one either
   - removes the last line, i.e. the call to the class's method, or
   - removes the template argument, i.e., the "[ T ]" in line 2 and
        the "[ int ]" in line 5.

Hence, the issue only appears when calling methods of _templated_ 
classes, which have a _default_ value for their argument.


    Simon


+---
| Dr. Simon Anders, Dipl.-Phys.
| European Molecular Biology Laboratory (EMBL), Heidelberg
| office phone +49-6221-387-8632
| preferred (permanent) e-mail: sanders at fs.tum.de

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: trace
URL: <http://mail.python.org/pipermail/cython-devel/attachments/20110322/d5ca3834/attachment.ksh>


More information about the cython-devel mailing list