On Thu, Nov 18, 2021 at 2:07 PM Jan Hubicka <hubi...@kam.mff.cuni.cz> wrote: > > > --- a/gcc/config/rs6000/predicates.md > > +++ b/gcc/config/rs6000/predicates.md > > @@ -1086,7 +1086,9 @@ (define_predicate "current_file_function_operand" > > (match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op)) > > && (SYMBOL_REF_LOCAL_P (op) > > || (op == XEXP (DECL_RTL (current_function_decl), 0) > > - && !decl_replaceable_p (current_function_decl))) > > + && !decl_replaceable_p (current_function_decl, > > + opt_for_fn > > (current_function_decl, > > + > > flag_semantic_interposition)))) > > Thanks, missed the use of the predicate here. > However it is not clear to me why one would care about semantic > interposition at this level. It seems to me that one more cares whether > the symbol must be always resolved locally. In this case > cgraph_node::get (current_function_decl)->binds_to_current_def_p > (cgraph_node::get (current_function_decl)) > would give right answer (and work for cases like functions in comdat groups)
Hi, Honza I was trying to fix bootstrap as quickly as possible and used the best example that I could find. It definitely can be refined. Thanks for suggesting a better design. I'll test it. Thanks, David > > Honza > > && !((DEFAULT_ABI == ABI_AIX > > || DEFAULT_ABI == ABI_ELFv2) > > && (SYMBOL_REF_EXTERNAL_P (op)