symbols.c (colon): Do not allow symbols to be created in the absolute section

if WORKING_DOT_WORD is not defined and new_broken_words would require a new
frag to be created.
This commit is contained in:
Nick Clifton 2002-09-20 14:47:14 +00:00
parent ddd216eaca
commit 7cf108933b
2 changed files with 10 additions and 8 deletions

View File

@ -1,7 +1,8 @@
2002-09-20 Nick Clifton <nickc@redhat.com> 2002-09-20 Nick Clifton <nickc@redhat.com>
* symbols.c (colon): Do not allow symbols to be created in the * symbols.c (colon): Do not allow symbols to be created in the
absolute section. absolute section if WORKING_DOT_WORD is not defined and
new_broken_words would require a new frag to be created.
2002-09-20 Alan Modra <amodra@bigpond.net.au> 2002-09-20 Alan Modra <amodra@bigpond.net.au>

View File

@ -287,13 +287,7 @@ colon (sym_name) /* Just seen "x:" - rattle symbols & frags. */
{ {
register symbolS *symbolP; /* Symbol we are working with. */ register symbolS *symbolP; /* Symbol we are working with. */
if (now_seg == absolute_section) /* Sun local labels go out of scope whenever a non-local symbol is
{
as_bad (_("cannot define symbol `%s' in absolute section"), sym_name);
return NULL;
}
/* Sun local labels go out of scope whenever a non-local symbol is
defined. */ defined. */
if (LOCAL_LABELS_DOLLAR) if (LOCAL_LABELS_DOLLAR)
{ {
@ -319,6 +313,13 @@ colon (sym_name) /* Just seen "x:" - rattle symbols & frags. */
extern const int md_short_jump_size; extern const int md_short_jump_size;
extern const int md_long_jump_size; extern const int md_long_jump_size;
if (now_seg == absolute_section)
{
as_bad (_("cannot define symbol `%s' in absolute section"), sym_name);
return NULL;
}
possible_bytes = (md_short_jump_size possible_bytes = (md_short_jump_size
+ new_broken_words * md_long_jump_size); + new_broken_words * md_long_jump_size);