On Tue, Jun 11, 2013 at 09:56:28AM -0700, Richard Henderson wrote: > On 06/11/2013 04:31 AM, Jakub Jelinek wrote: > > +bool > > +default_binds_to_current_def_p_1 (const_tree exp, int shlib) > > +{ > ... > > +} > > I'm having trouble picking out what's supposed to be different between this > function and default_binds_local_p_1. It appears to be the same set of tests, > just rearranged into a possibly more efficient form requiring less runtime > evaluation.
What is different is 1) weakref/ifunc handling without !TREE_PUBLIC (not sure about that though; the old version would return true for !TREE_PUBLIC right away, but e.g. default_binds_local_p_1 checks TREE_PUBLIC only after testing for weakref) 2) DECL_COMMON with non-default visibility - the old version would return true, now it returns false unless linker plugin tells us the current common was used Or do you think we should just do what we did before and just handle the 1) and 2) cases explicitly in the decl_binds_to_current_def_p function? Jakub