> --- 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)

Reply via email to