diff options
author | Alan Modra <amodra@gmail.com> | 2009-09-23 06:10:08 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2009-09-23 06:10:08 +0000 |
commit | a3371076af12586b4d0544dbdc12df2f670afbe3 (patch) | |
tree | f130b86fb4d2c1eddb7979a55a1f807920a77d1c | |
parent | f9272224cdd8ee09437255989d70d3f2284de413 (diff) | |
download | gdb-a3371076af12586b4d0544dbdc12df2f670afbe3.zip gdb-a3371076af12586b4d0544dbdc12df2f670afbe3.tar.gz gdb-a3371076af12586b4d0544dbdc12df2f670afbe3.tar.bz2 |
* symbols.c (define_sym_at_dot): New function, extracted from..
(colon): ..here. Define error case cloned symbol.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/symbols.c | 26 |
2 files changed, 19 insertions, 12 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 0f4d024..28099ba 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2009-09-23 Alan Modra <amodra@bigpond.net.au> + + * symbols.c (define_sym_at_dot): New function, extracted from.. + (colon): ..here. Define error case cloned symbol. + 2009-09-21 H.J. Lu <hongjiu.lu@intel.com> * config/tc-i386.c: Remove white spaces. diff --git a/gas/symbols.c b/gas/symbols.c index 6162318..304a1ee 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -246,6 +246,17 @@ local_symbol_convert (struct local_symbol *locsym) return ret; } +static void +define_sym_at_dot (symbolS *symbolP) +{ + symbolP->sy_frag = frag_now; +#ifdef OBJ_VMS + S_SET_OTHER (symbolP, const_flag); +#endif + S_SET_VALUE (symbolP, (valueT) frag_now_fix ()); + S_SET_SEGMENT (symbolP, now_seg); +} + /* We have just seen "<name>:". Creates a struct symbol unless it already exists. @@ -343,12 +354,7 @@ colon (/* Just seen "x:" - rattle symbols & frags. */ } if (S_GET_VALUE (symbolP) == 0) { - symbolP->sy_frag = frag_now; -#ifdef OBJ_VMS - S_SET_OTHER (symbolP, const_flag); -#endif - S_SET_VALUE (symbolP, (valueT) frag_now_fix ()); - S_SET_SEGMENT (symbolP, now_seg); + define_sym_at_dot (symbolP); #ifdef N_UNDF know (N_UNDF == 0); #endif /* if we have one, it better be zero. */ @@ -393,12 +399,7 @@ colon (/* Just seen "x:" - rattle symbols & frags. */ { /* It is a .comm/.lcomm being converted to initialized data. */ - symbolP->sy_frag = frag_now; -#ifdef OBJ_VMS - S_SET_OTHER (symbolP, const_flag); -#endif - S_SET_VALUE (symbolP, (valueT) frag_now_fix ()); - S_SET_SEGMENT (symbolP, now_seg); /* Keep N_EXT bit. */ + define_sym_at_dot (symbolP); } } else @@ -431,6 +432,7 @@ colon (/* Just seen "x:" - rattle symbols & frags. */ { as_bad (_("symbol `%s' is already defined"), sym_name); symbolP = symbol_clone (symbolP, 0); + define_sym_at_dot (symbolP); } } |