]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorJakub Jelinek <jakub@gcc.gnu.org>
Thu, 28 Jun 2007 11:30:50 +0000 (13:30 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Thu, 28 Jun 2007 11:30:50 +0000 (13:30 +0200)
2007-06-28  Jakub Jelinek  <jakub@redhat.com>

* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
decl is non-external for AIX ABI.

2007-06-28  David Edelsohn  <edelsohn@gnu.org>

* config/rs6000/predicates.md (current_file_function_operand):
Ensure the symbol is non-external for AIX ABI.

From-SVN: r126078

gcc/ChangeLog
gcc/config/rs6000/predicates.md
gcc/config/rs6000/rs6000.c

index b6781bf96515da9c1436d62d1e43a8d8d8f07b0a..28989b2b174e4fe24eccd019c526fb58f1450149 100644 (file)
@@ -1,3 +1,13 @@
+2007-06-28  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
+       decl is non-external for AIX ABI.
+
+2007-06-28  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/predicates.md (current_file_function_operand):
+       Ensure the symbol is non-external for AIX ABI.
+
 2007-06-21  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/32389
index 258eccc54d71e492adb3a7334882845dac6fb992..0cf30138ce886f94309dbf9ff9a3eccd6ea2c851 100644 (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)
+                   && ((SYMBOL_REF_LOCAL_P (op)
+                        && (DEFAULT_ABI != ABI_AIX
+                            || !SYMBOL_REF_EXTERNAL_P (op)))
                        || (op == XEXP (DECL_RTL (current_function_decl),
                                                  0)))")))
 
index 0f76f4562d0cbf37cdd51c9db332e0759fdafbd9..c775552b1a14a66afa49397272a9585fbf9f3b0f 100644 (file)
@@ -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));