On 23 September 2011 06:02, Robert Bradshaw <[email protected]> wrote: > On Thu, Sep 22, 2011 at 9:36 PM, Vitja Makarov <[email protected]> > wrote: >> 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. > > Ah, yes. > >> I see two cases here: global function call and method call. Both are >> SimpleCallNodes. > > Yep, and the function could be an arbitrary expression... Ugly. > > - Robert > _______________________________________________ > cython-devel mailing list > [email protected] > http://mail.python.org/mailman/listinfo/cython-devel >
Can't you run the entire CF analysis after analyse expressions? I think only the code generation needs the cf_* attributes? _______________________________________________ cython-devel mailing list [email protected] http://mail.python.org/mailman/listinfo/cython-devel
