aboutsummaryrefslogtreecommitdiff
path: root/gas/symbols.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2005-04-09 03:48:09 +0000
committerAlan Modra <amodra@gmail.com>2005-04-09 03:48:09 +0000
commitbe95a9c15d32e35e7529c6a4e035e60398184b99 (patch)
treed7ed5002b1056c9a39ea4a4d0a4387bc47097a6c /gas/symbols.c
parentf0885a038a82dccd604b3667e14dbc6bb3df4e99 (diff)
downloadfsf-binutils-gdb-be95a9c15d32e35e7529c6a4e035e60398184b99.zip
fsf-binutils-gdb-be95a9c15d32e35e7529c6a4e035e60398184b99.tar.gz
fsf-binutils-gdb-be95a9c15d32e35e7529c6a4e035e60398184b99.tar.bz2
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.
Diffstat (limited to 'gas/symbols.c')
-rw-r--r--gas/symbols.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gas/symbols.c b/gas/symbols.c
index 3093c01..bf47ebb 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -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