summaryrefslogtreecommitdiff
path: root/gas/symbols.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2005-04-09 03:48:09 +0000
committerAlan Modra <amodra@bigpond.net.au>2005-04-09 03:48:09 +0000
commit6a49edc998ecfb5285c3fca2e44fc11584150944 (patch)
treecec149cca9291d2c577ad5fef3567a75c76df81e /gas/symbols.c
parentb5e89a9353e703e1b77df0d9ce2b51f5cb6dd79a (diff)
downloadbinutils-redhat-6a49edc998ecfb5285c3fca2e44fc11584150944.tar.gz
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 3093c01548..bf47ebb745 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