2007-06-25 Jakub Jelinek * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure decl is non-external for AIX ABI. 2007-06-25 David Edelsohn * config/rs6000/predicates.md (current_file_function_operand): Ensure the symbol is non-external for AIX ABI. --- gcc/config/rs6000/rs6000.c.jj 2007-06-25 22:22:41.000000000 +0200 +++ gcc/config/rs6000/rs6000.c 2007-06-25 23:11:20.000000000 +0200 @@ -13938,7 +13938,8 @@ rs6000_function_ok_for_sibcall (tree dec } } if (DEFAULT_ABI == ABI_DARWIN - || (*targetm.binds_local_p) (decl)) + || ((*targetm.binds_local_p) (decl) + && (DEFAULT_ABI != ABI_AIX || !DECL_EXTERNAL (decl)))) { tree attr_list = TYPE_ATTRIBUTES (TREE_TYPE (decl)); --- gcc/config/rs6000/predicates.md.jj 2007-06-25 22:22:41.000000000 +0200 +++ gcc/config/rs6000/predicates.md 2007-06-25 22:57:19.000000000 +0200 @@ -696,7 +696,9 @@ (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) + && ((SYMBOL_REF_LOCAL_P (op) + && (DEFAULT_ABI != ABI_AIX + || !SYMBOL_REF_EXTERNAL_P (op))) || (op == XEXP (DECL_RTL (current_function_decl), 0)))")))