diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 600619cb2c3..72fa4a5ee7b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2006-03-23 Richard Henderson + * 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 14d54388e60..6b1cef70bb0 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;