diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 600619cb2c3a6744e1d158e352642caffcb6679b..72fa4a5ee7ba343b3cb7b120e809c7c6873bbdef 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2006-03-23 Richard Henderson <rth@redhat.com> + * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject + tls symbols. + PR target/26347 * config/alpha/predicates.md (local_symbolic_operand): Reject weak symbols. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 14d54388e6085badfbfbf46f725bb4e16d9de2bc..6b1cef70bb015b3fe6b750559b5609dd5db7fcb1 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -2124,10 +2124,13 @@ alpha_legitimate_constant_p (rtx x) { case CONST: case LABEL_REF: - case SYMBOL_REF: case HIGH: return true; + case SYMBOL_REF: + /* TLS symbols are never valid. */ + return SYMBOL_REF_TLS_MODEL (x) == 0; + case CONST_DOUBLE: if (x == CONST0_RTX (mode)) return true;