https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79439
Segher Boessenkool <segher at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-02-09 Ever confirmed|0 |1 --- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> --- We have (in rs6000/predicates.md): ;; Return 1 if the operand is a SYMBOL_REF for a function known to be in ;; this file. (define_predicate "current_file_function_operand" (and (match_code "symbol_ref") (match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op)) && (SYMBOL_REF_LOCAL_P (op) || op == XEXP (DECL_RTL (current_function_decl), 0)) && !((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2) && (SYMBOL_REF_EXTERNAL_P (op) || SYMBOL_REF_WEAK (op)))"))) so this seems to be on purpose.