2011/9/23 Robert Bradshaw <rober...@math.washington.edu>: > On Thu, Sep 22, 2011 at 5:08 AM, Vitja Makarov <vitja.maka...@gmail.com> > wrote: >> 2011/9/22 Robert Bradshaw <rober...@math.washington.edu>: >>> On Wed, Sep 21, 2011 at 1:20 AM, <robert....@exasol.com> wrote: >>>> Hi Robert, >>>> >>>> Robert Bradshaw wrote: >>>>> >>>>> The warning seem correct to me, or is foo actually modifying the >>>>> values of cya and cyb? (I suppose this could be possible by taking the >>>>> address of the "passed by reference" arguments, but would seem like a >>>>> *very* poor API design.) >>>> >>>> thanks for your fast answer! What made me came up with this issue is >>>> that GCC/C++ will not complain in similar situations in C++ code (and >>>> assumes foo() to initialize/change the value of cya/cyb). Thus, there >>>> is an (arguable) difference in C++ compiler/Cython warnings. >>> >>> Yes, in C++ the called function can modify values passed by reference, >>> so we need to add this exception to Cython. >>> >> >> That could be hard because we can not always resolve function to check >> its args at create-control-flow stage. > > Doesn't this always happen after declaration analysis? >
Sure. But before analyse expressions, so you have to manually lookup entries for names and attributes. I see two cases here: global function call and method call. Both are SimpleCallNodes. -- vitja. _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel