2011/9/23 Robert Bradshaw <[email protected]>:
> On Thu, Sep 22, 2011 at 5:08 AM, Vitja Makarov <[email protected]> 
> wrote:
>> 2011/9/22 Robert Bradshaw <[email protected]>:
>>> On Wed, Sep 21, 2011 at 1:20 AM,  <[email protected]> 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
[email protected]
http://mail.python.org/mailman/listinfo/cython-devel

Reply via email to