PR gas/827

* as.h (rs_dummy): Define.
	* symbols.c (symbol_X_add_number): New function.
	* symbols.h (symbol_X_add_number): Declare.
	* stabs.c (aout_process_stab): Tidy symbol frag setting.
	* read.c (assign_symbol): New function, split out from s_set.
	Use symbol_find_or_make.  Leave fr_type of dummy frag as rs_dummy.
	Fix COFF hacks for multi-emulation gas.
	(s_set): Call assign_symbol.  Remove "register" keyword.
	(set_zero_frag): New function.
	(pseudo_set): Always check for assignment to section syms.
	Always set segment and frag of symbol, and likewise extern for
	aout/bout.  Handle assignment of sym=sym+/-const specially.  Don't
	special case exp.X_add_number non-zero for O_symbol expressions.
	(equals): Use assign_symbol.
This commit is contained in:
Alan Modra 2005-04-09 03:48:09 +00:00
parent f0885a038a
commit be95a9c15d
6 changed files with 149 additions and 130 deletions

View file

@ -2022,6 +2022,19 @@ symbol_set_value_expression (symbolS *s, const expressionS *exp)
s->sy_value = *exp;
}
/* Return a pointer to the X_add_number component of a symbol. */
valueT *
symbol_X_add_number (symbolS *s)
{
#ifdef BFD_ASSEMBLER
if (LOCAL_SYMBOL_CHECK (s))
return &((struct local_symbol *) s)->lsy_value;
#endif
return &s->sy_value.X_add_number;
}
/* Set the value of SYM to the current position in the current segment. */
void