From 159fbb6088f17a341bcaaac960623cab881b4981 Mon Sep 17 00:00:00 2001 From: Steve Chamberlain Date: Fri, 24 Jan 1992 01:33:07 +0000 Subject: [PATCH] * symbols.c(colon): if a symbol is being multiply defined as exactly the same value, then don't cause a fatal error. This fixes P00000616 - where a def _foo= . followed by foo: is seen. --- gas/ChangeLog | 12 ++++++++++++ gas/symbols.c | 13 +++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 241cd2401cc..6d132521dd6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,4 +1,16 @@ +Thu Jan 23 17:30:08 1992 Steve Chamberlain (sac at rtl.cygnus.com) + + * symbols.c(colon): if a symbol is being multiply defined as exactly + the same value, then don't cause a fatal error. This fixes + P00000616 - where a def _foo= . followed by foo: is seen. + Wed Jan 8 11:26:40 1992 Steve Chamberlain (sac at rtl.cygnus.com) + + * config/obj-coffbfd.c: lint + * config/tc-h8300.c, config/tc-h8300.h: Too Many bug fixes + * config/tc-m68k.h, config/tc-sparc.h: Override default + listing options to give better effect. + Added support for listings * Makefile.in: include listing.[co] * as.c: parse -l diff --git a/gas/symbols.c b/gas/symbols.c index 9d75ae1ea43..2ac48c1e511 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -205,7 +205,7 @@ fragS *frag; /* Associated fragment */ obj_symbol_new_hook(symbolP); #ifdef DEBUG - verify_symbol_chain(symbol_rootP, symbol_lastP); +/* verify_symbol_chain(symbol_rootP, symbol_lastP); */ #endif /* DEBUG */ return(symbolP); @@ -367,8 +367,13 @@ void colon(sym_name) /* just seen "x:" - rattle symbols & frags */ #endif /* OBJ_COFF */ } } /* if the undefined symbol has no value */ - } else { - as_fatal("Symbol %s already defined.", sym_name); + } else + { + /* Don't blow up if the definition is the same */ + if (!(frag_now == symbolP->sy_frag + && S_GET_VALUE(symbolP) == obstack_next_free(&frags) - frag_now->fr_literal + && S_GET_SEGMENT(symbolP) == now_seg) ) + as_fatal("Symbol %s already defined.", sym_name); } /* if this symbol is not yet defined */ } else { @@ -515,7 +520,7 @@ symbolS **lastPP; #endif /* SYMBOLS_NEED_BACKPOINTERS */ #ifdef DEBUG - verify_symbol_chain(*rootPP, *lastPP); +/* verify_symbol_chain(*rootPP, *lastPP); */ #endif /* DEBUG */ return; -- 2.30.2