> --- 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) Honza > && !((DEFAULT_ABI == ABI_AIX > || DEFAULT_ABI == ABI_ELFv2) > && (SYMBOL_REF_EXTERNAL_P (op)