]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/26347 (hidden weak extern functions fail regardless of existence on...
authorRichard Henderson <rth@redhat.com>
Wed, 21 Jun 2006 18:31:56 +0000 (11:31 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 21 Jun 2006 18:31:56 +0000 (11:31 -0700)
        PR target/26347
        PR target/27082
        * config/alpha/predicates.md (small_symbolic_operand): Deny weak
        symbols.
        (global_symbolic_operand): Allow weak symbols, even if local_p.

From-SVN: r114861

gcc/ChangeLog
gcc/config/alpha/predicates.md

index f612b093dfe485f91f3af5f7c639554c4ee6829f..8dcf578d3724d2524cfa69591fc856b8628f35c4 100644 (file)
@@ -1,3 +1,11 @@
+2006-06-21  Richard Henderson  <rth@redhat.com>
+
+       PR target/26347
+       PR target/27082
+       * config/alpha/predicates.md (small_symbolic_operand): Deny weak
+       symbols.
+       (global_symbolic_operand): Allow weak symbols, even if local_p.
+
 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
 
        * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
index a035fffd841d2e1a8fcd3cdc0cffcc834ed0d04c..8d375608f4eda4ee4577ceeb25220931d2931072 100644 (file)
 
   return (SYMBOL_REF_LOCAL_P (op)
          && SYMBOL_REF_SMALL_P (op)
-         && SYMBOL_REF_TLS_MODEL (op) == 0);
+         && !SYMBOL_REF_WEAK (op)
+         && !SYMBOL_REF_TLS_MODEL (op));
 })
 
 ;; Return true if OP is a SYMBOL_REF or CONST referencing a variable
   if (GET_CODE (op) != SYMBOL_REF)
     return 0;
 
-  return !SYMBOL_REF_LOCAL_P (op) && !SYMBOL_REF_TLS_MODEL (op);
+  return ((!SYMBOL_REF_LOCAL_P (op) || SYMBOL_REF_WEAK (op))
+         && !SYMBOL_REF_TLS_MODEL (op));
 })
 
 ;; Returns 1 if OP is a symbolic operand, i.e. a symbol_ref or a label_ref,