[PATCH 1/2] Update iterator of next

Jan Hubicka hubicka@ucw.cz
Fri Nov 15 12:59:00 GMT 2019


> The bug in the walker loop here IMO predated C++ conversion, but to
> avoid member function freeing THIS we probably want to have:
> 
> cgraph_edge::remove (e),
> symtab_node::remove (e),
> ipa_ref::remove (ref),
> cgraph_node::resolve_speculation (e, target)
Actually thinking of this, perhas remove_speculation is better to make
it clear that it removes something ;)

Thanks for reminiding me of this issue :)
Honza
> 
> I suppose good time for the conversion would be after remaining patches
> are merget. If you would have time to do that even better ;)
> 
> > ...and then we can (and should and will) document that it can free the
> > edge.
> It speaks about removing edges and return value, 
> 
>      Speculative call edge turned out to be direct call to CALLEE_DECL.         
>      Remove the speculative call sequence and return edge representing the call.
>      It is up to caller to redirect the call as appropriate.
> 
> We could add
>      Edge E may be freed if it is resolved to other edge of the
>      speculative call.
> 
> Honza
> > 
> > Martin



More information about the Gcc-patches mailing list