From 3a376867a22fe7526d7dbfe8e425399d43e5e59a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 28 Jun 2007 13:30:50 +0200 Subject: [PATCH] [multiple changes] 2007-06-28 Jakub Jelinek * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure decl is non-external for AIX ABI. 2007-06-28 David Edelsohn * config/rs6000/predicates.md (current_file_function_operand): Ensure the symbol is non-external for AIX ABI. From-SVN: r126078 --- gcc/ChangeLog | 10 ++++++++++ gcc/config/rs6000/predicates.md | 4 +++- gcc/config/rs6000/rs6000.c | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6781bf96515..28989b2b174e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2007-06-28 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure + decl is non-external for AIX ABI. + +2007-06-28 David Edelsohn + + * config/rs6000/predicates.md (current_file_function_operand): + Ensure the symbol is non-external for AIX ABI. + 2007-06-21 Uros Bizjak PR target/32389 diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md index 258eccc54d71..0cf30138ce88 100644 --- a/gcc/config/rs6000/predicates.md +++ b/gcc/config/rs6000/predicates.md @@ -691,7 +691,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)))"))) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 0f76f4562d0c..c775552b1a14 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -13327,7 +13327,8 @@ rs6000_function_ok_for_sibcall (tree decl, tree exp ATTRIBUTE_UNUSED) } } 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)); -- 2.47.2