* 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.
This commit is contained in:
Steve Chamberlain 1992-01-24 01:33:07 +00:00
parent ead077d598
commit 159fbb6088
2 changed files with 21 additions and 4 deletions

View File

@ -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

View File

@ -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;