2000-08-10 Kazu Hirata <kazu@hxi.com>
* symbols.c: Fix formatting.
This commit is contained in:
parent
f1d7622b95
commit
7c743825ea
2 changed files with 190 additions and 219 deletions
|
@ -1,3 +1,7 @@
|
|||
2000-08-10 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* symbols.c: Fix formatting.
|
||||
|
||||
2000-08-09 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
From Rodney Brown <RodneyBrown@mynd.com>
|
||||
|
|
291
gas/symbols.c
291
gas/symbols.c
|
@ -19,7 +19,7 @@
|
|||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
|
||||
/* #define DEBUG_SYMS / * to debug symbol list maintenance */
|
||||
/* #define DEBUG_SYMS / * to debug symbol list maintenance. */
|
||||
|
||||
#include <ctype.h>
|
||||
|
||||
|
@ -63,9 +63,7 @@ static long fb_label_instance PARAMS ((long));
|
|||
|
||||
static void print_binary PARAMS ((FILE *, const char *, expressionS *));
|
||||
|
||||
/* symbol_new()
|
||||
|
||||
Return a pointer to a new symbol. Die if we can't make a new
|
||||
/* Return a pointer to a new symbol. Die if we can't make a new
|
||||
symbol. Fill in the symbol's values. Add symbol to end of symbol
|
||||
chain.
|
||||
|
||||
|
@ -83,9 +81,7 @@ symbol_new (name, segment, valu, frag)
|
|||
{
|
||||
symbolS *symbolP = symbol_create (name, segment, valu, frag);
|
||||
|
||||
/*
|
||||
* Link to end of symbol chain.
|
||||
*/
|
||||
/* Link to end of symbol chain. */
|
||||
#ifdef BFD_ASSEMBLER
|
||||
{
|
||||
extern int symbol_table_frozen;
|
||||
|
@ -108,7 +104,7 @@ save_symbol_name (name)
|
|||
unsigned int name_length;
|
||||
char *ret;
|
||||
|
||||
name_length = strlen (name) + 1; /* +1 for \0 */
|
||||
name_length = strlen (name) + 1; /* +1 for \0. */
|
||||
obstack_grow (¬es, name, name_length);
|
||||
ret = obstack_finish (¬es);
|
||||
|
||||
|
@ -135,10 +131,10 @@ save_symbol_name (name)
|
|||
|
||||
symbolS *
|
||||
symbol_create (name, segment, valu, frag)
|
||||
const char *name; /* It is copied, the caller can destroy/modify */
|
||||
segT segment; /* Segment identifier (SEG_<something>) */
|
||||
valueT valu; /* Symbol value */
|
||||
fragS *frag; /* Associated fragment */
|
||||
const char *name; /* It is copied, the caller can destroy/modify. */
|
||||
segT segment; /* Segment identifier (SEG_<something>). */
|
||||
valueT valu; /* Symbol value. */
|
||||
fragS *frag; /* Associated fragment. */
|
||||
{
|
||||
char *preserved_copy_of_name;
|
||||
symbolS *symbolP;
|
||||
|
@ -272,22 +268,17 @@ local_symbol_convert (locsym)
|
|||
|
||||
#endif /* ! BFD_ASSEMBLER */
|
||||
|
||||
/* We have just seen "<name>:".
|
||||
Creates a struct symbol unless it already exists.
|
||||
|
||||
Gripes if we are redefining a symbol incompatibly (and ignores it). */
|
||||
|
||||
/*
|
||||
* colon()
|
||||
*
|
||||
* We have just seen "<name>:".
|
||||
* Creates a struct symbol unless it already exists.
|
||||
*
|
||||
* Gripes if we are redefining a symbol incompatibly (and ignores it).
|
||||
*
|
||||
*/
|
||||
symbolS *
|
||||
colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
||||
const char *sym_name; /* symbol name, as a cannonical string */
|
||||
colon (sym_name) /* Just seen "x:" - rattle symbols & frags. */
|
||||
const char *sym_name; /* Symbol name, as a cannonical string. */
|
||||
/* We copy this string: OK to alter later. */
|
||||
{
|
||||
register symbolS *symbolP; /* symbol we are working with */
|
||||
register symbolS *symbolP; /* Symbol we are working with. */
|
||||
|
||||
/* Sun local labels go out of scope whenever a non-local symbol is
|
||||
defined. */
|
||||
|
@ -327,9 +318,9 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
(offsetT) 0,
|
||||
NULL);
|
||||
|
||||
/* We want to store the pointer to where to insert the jump table in the
|
||||
fr_opcode of the rs_broken_word frag. This requires a little
|
||||
hackery. */
|
||||
/* We want to store the pointer to where to insert the jump
|
||||
table in the fr_opcode of the rs_broken_word frag. This
|
||||
requires a little hackery. */
|
||||
while (frag_tmp
|
||||
&& (frag_tmp->fr_type != rs_broken_word
|
||||
|| frag_tmp->fr_opcode))
|
||||
|
@ -349,9 +340,7 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
if (RESOLVE_SYMBOL_REDEFINITION (symbolP))
|
||||
return symbolP;
|
||||
#endif
|
||||
/*
|
||||
* Now check for undefined symbols
|
||||
*/
|
||||
/* Now check for undefined symbols. */
|
||||
if (LOCAL_SYMBOL_CHECK (symbolP))
|
||||
{
|
||||
#ifdef BFD_ASSEMBLER
|
||||
|
@ -388,16 +377,16 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* There are still several cases to check:
|
||||
* A .comm/.lcomm symbol being redefined as
|
||||
* initialized data is OK
|
||||
* A .comm/.lcomm symbol being redefined with
|
||||
* a larger size is also OK
|
||||
*
|
||||
* This only used to be allowed on VMS gas, but Sun cc
|
||||
* on the sparc also depends on it.
|
||||
*/
|
||||
/* There are still several cases to check:
|
||||
|
||||
A .comm/.lcomm symbol being redefined as initialized
|
||||
data is OK
|
||||
|
||||
A .comm/.lcomm symbol being redefined with a larger
|
||||
size is also OK
|
||||
|
||||
This only used to be allowed on VMS gas, but Sun cc
|
||||
on the sparc also depends on it. */
|
||||
|
||||
if (((!S_IS_DEBUG (symbolP)
|
||||
&& (!S_IS_DEFINED (symbolP) || S_IS_COMMON (symbolP))
|
||||
|
@ -406,17 +395,14 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
&& (now_seg == data_section
|
||||
|| now_seg == S_GET_SEGMENT (symbolP)))
|
||||
{
|
||||
/*
|
||||
* Select which of the 2 cases this is
|
||||
*/
|
||||
/* Select which of the 2 cases this is. */
|
||||
if (now_seg != data_section)
|
||||
{
|
||||
/*
|
||||
* New .comm for prev .comm symbol.
|
||||
* If the new size is larger we just
|
||||
* change its value. If the new size
|
||||
* is smaller, we ignore this symbol
|
||||
*/
|
||||
/* New .comm for prev .comm symbol.
|
||||
|
||||
If the new size is larger we just change its
|
||||
value. If the new size is smaller, we ignore
|
||||
this symbol. */
|
||||
if (S_GET_VALUE (symbolP)
|
||||
< ((unsigned) frag_now_fix ()))
|
||||
{
|
||||
|
@ -432,7 +418,7 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
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 */
|
||||
S_SET_SEGMENT (symbolP, now_seg); /* Keep N_EXT bit. */
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -460,7 +446,7 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
}
|
||||
else
|
||||
{
|
||||
/* Don't blow up if the definition is the same */
|
||||
/* Don't blow up if the definition is the same. */
|
||||
if (!(frag_now == symbolP->sy_frag
|
||||
&& S_GET_VALUE (symbolP) == frag_now_fix ()
|
||||
&& S_GET_SEGMENT (symbolP) == now_seg))
|
||||
|
@ -511,13 +497,7 @@ colon (sym_name) /* just seen "x:" - rattle symbols & frags */
|
|||
return symbolP;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* symbol_table_insert()
|
||||
*
|
||||
* Die if we can't insert the symbol.
|
||||
*
|
||||
*/
|
||||
/* Die if we can't insert the symbol. */
|
||||
|
||||
void
|
||||
symbol_table_insert (symbolP)
|
||||
|
@ -543,14 +523,11 @@ symbol_table_insert (symbolP)
|
|||
as_fatal (_("Inserting \"%s\" into symbol table failed: %s"),
|
||||
S_GET_NAME (symbolP), error_string);
|
||||
} /* on error */
|
||||
} /* symbol_table_insert() */
|
||||
}
|
||||
|
||||
/*
|
||||
* symbol_find_or_make()
|
||||
*
|
||||
* If a symbol name does not exist, create it as undefined, and insert
|
||||
* it into the symbol table. Return a pointer to it.
|
||||
*/
|
||||
/* If a symbol name does not exist, create it as undefined, and insert
|
||||
it into the symbol table. Return a pointer to it. */
|
||||
|
||||
symbolS *
|
||||
symbol_find_or_make (name)
|
||||
const char *name;
|
||||
|
@ -581,7 +558,7 @@ symbol_find_or_make (name)
|
|||
} /* if symbol wasn't found */
|
||||
|
||||
return (symbolP);
|
||||
} /* symbol_find_or_make() */
|
||||
}
|
||||
|
||||
symbolS *
|
||||
symbol_make (name)
|
||||
|
@ -596,16 +573,12 @@ symbol_make (name)
|
|||
symbolP = symbol_new (name, undefined_section, (valueT) 0, &zero_address_frag);
|
||||
|
||||
return (symbolP);
|
||||
} /* symbol_make() */
|
||||
}
|
||||
|
||||
/*
|
||||
* symbol_find()
|
||||
*
|
||||
* Implement symbol table lookup.
|
||||
* In: A symbol's name as a string: '\0' can't be part of a symbol name.
|
||||
* Out: NULL if the name was not in the symbol table, else the address
|
||||
* of a struct symbol associated with that name.
|
||||
*/
|
||||
/* Implement symbol table lookup.
|
||||
In: A symbol's name as a string: '\0' can't be part of a symbol name.
|
||||
Out: NULL if the name was not in the symbol table, else the address
|
||||
of a struct symbol associated with that name. */
|
||||
|
||||
symbolS *
|
||||
symbol_find (name)
|
||||
|
@ -616,7 +589,7 @@ symbol_find (name)
|
|||
#else /* STRIP_UNDERSCORE */
|
||||
return (symbol_find_base (name, 0));
|
||||
#endif /* STRIP_UNDERSCORE */
|
||||
} /* symbol_find() */
|
||||
}
|
||||
|
||||
symbolS *
|
||||
symbol_find_base (name, strip_underscore)
|
||||
|
@ -668,15 +641,14 @@ symbol_find_base (name, strip_underscore)
|
|||
return ((symbolS *) hash_find (sy_hash, name));
|
||||
}
|
||||
|
||||
/*
|
||||
* Once upon a time, symbols were kept in a singly linked list. At
|
||||
* least coff needs to be able to rearrange them from time to time, for
|
||||
* which a doubly linked list is much more convenient. Loic did these
|
||||
* as macros which seemed dangerous to me so they're now functions.
|
||||
* xoxorich.
|
||||
*/
|
||||
/* Once upon a time, symbols were kept in a singly linked list. At
|
||||
least coff needs to be able to rearrange them from time to time, for
|
||||
which a doubly linked list is much more convenient. Loic did these
|
||||
as macros which seemed dangerous to me so they're now functions.
|
||||
xoxorich. */
|
||||
|
||||
/* Link symbol ADDME after symbol TARGET in the chain. */
|
||||
|
||||
void
|
||||
symbol_append (addme, target, rootPP, lastPP)
|
||||
symbolS *addme;
|
||||
|
@ -725,6 +697,7 @@ symbol_append (addme, target, rootPP, lastPP)
|
|||
}
|
||||
|
||||
/* Set the chain pointers of SYMBOL to null. */
|
||||
|
||||
void
|
||||
symbol_clear_list_pointers (symbolP)
|
||||
symbolS *symbolP;
|
||||
|
@ -739,6 +712,7 @@ symbol_clear_list_pointers (symbolP)
|
|||
|
||||
#ifdef SYMBOLS_NEED_BACKPOINTERS
|
||||
/* Remove SYMBOLP from the list. */
|
||||
|
||||
void
|
||||
symbol_remove (symbolP, rootPP, lastPP)
|
||||
symbolS *symbolP;
|
||||
|
@ -772,6 +746,7 @@ symbol_remove (symbolP, rootPP, lastPP)
|
|||
}
|
||||
|
||||
/* Link symbol ADDME before symbol TARGET in the chain. */
|
||||
|
||||
void
|
||||
symbol_insert (addme, target, rootPP, lastPP)
|
||||
symbolS *addme;
|
||||
|
@ -891,7 +866,8 @@ resolve_symbol_value (symp, finalize)
|
|||
if (symp->sy_resolving)
|
||||
{
|
||||
if (finalize)
|
||||
as_bad (_("Symbol definition loop encountered at %s"), S_GET_NAME (symp));
|
||||
as_bad (_("Symbol definition loop encountered at %s"),
|
||||
S_GET_NAME (symp));
|
||||
final_val = 0;
|
||||
resolved = 1;
|
||||
}
|
||||
|
@ -1076,7 +1052,8 @@ resolve_symbol_value (symp, finalize)
|
|||
S_GET_NAME (symp->sy_value.X_op_symbol));
|
||||
if (seg_left != undefined_section
|
||||
&& seg_right != undefined_section)
|
||||
as_bad_where (file, line, _("invalid section for operation"));
|
||||
as_bad_where (file, line,
|
||||
_("invalid section for operation"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1180,7 +1157,8 @@ exit_dont_set_value:
|
|||
symp->sy_resolved = 1;
|
||||
else if (S_GET_SEGMENT (symp) != expr_section)
|
||||
{
|
||||
as_bad (_("can't resolve value for symbol \"%s\""), S_GET_NAME (symp));
|
||||
as_bad (_("can't resolve value for symbol \"%s\""),
|
||||
S_GET_NAME (symp));
|
||||
symp->sy_resolved = 1;
|
||||
}
|
||||
}
|
||||
|
@ -1240,9 +1218,9 @@ dollar_label_defined (label)
|
|||
if (*i == label)
|
||||
return dollar_label_defines[i - dollar_labels];
|
||||
|
||||
/* if we get here, label isn't defined */
|
||||
/* If we get here, label isn't defined. */
|
||||
return 0;
|
||||
} /* dollar_label_defined() */
|
||||
}
|
||||
|
||||
static long
|
||||
dollar_label_instance (label)
|
||||
|
@ -1256,8 +1234,8 @@ dollar_label_instance (label)
|
|||
if (*i == label)
|
||||
return (dollar_label_instances[i - dollar_labels]);
|
||||
|
||||
/* If we get here, we haven't seen the label before, therefore its instance
|
||||
count is zero. */
|
||||
/* If we get here, we haven't seen the label before.
|
||||
Therefore its instance count is zero. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1283,7 +1261,7 @@ define_dollar_label (label)
|
|||
return;
|
||||
}
|
||||
|
||||
/* if we get to here, we don't have label listed yet. */
|
||||
/* If we get to here, we don't have label listed yet. */
|
||||
|
||||
if (dollar_labels == NULL)
|
||||
{
|
||||
|
@ -1309,31 +1287,28 @@ define_dollar_label (label)
|
|||
++dollar_label_count;
|
||||
}
|
||||
|
||||
/*
|
||||
* dollar_label_name()
|
||||
*
|
||||
* Caller must copy returned name: we re-use the area for the next name.
|
||||
*
|
||||
* The mth occurence of label n: is turned into the symbol "Ln^Am"
|
||||
* where n is the label number and m is the instance number. "L" makes
|
||||
* it a label discarded unless debugging and "^A"('\1') ensures no
|
||||
* ordinary symbol SHOULD get the same name as a local label
|
||||
* symbol. The first "4:" is "L4^A1" - the m numbers begin at 1.
|
||||
*
|
||||
* fb labels get the same treatment, except that ^B is used in place of ^A.
|
||||
*/
|
||||
/* Caller must copy returned name: we re-use the area for the next name.
|
||||
|
||||
The mth occurence of label n: is turned into the symbol "Ln^Am"
|
||||
where n is the label number and m is the instance number. "L" makes
|
||||
it a label discarded unless debugging and "^A"('\1') ensures no
|
||||
ordinary symbol SHOULD get the same name as a local label
|
||||
symbol. The first "4:" is "L4^A1" - the m numbers begin at 1.
|
||||
|
||||
fb labels get the same treatment, except that ^B is used in place
|
||||
of ^A. */
|
||||
|
||||
char * /* Return local label name. */
|
||||
dollar_label_name (n, augend)
|
||||
register long n; /* we just saw "n$:" : n a number */
|
||||
register int augend; /* 0 for current instance, 1 for new instance */
|
||||
register long n; /* we just saw "n$:" : n a number. */
|
||||
register int augend; /* 0 for current instance, 1 for new instance. */
|
||||
{
|
||||
long i;
|
||||
/* Returned to caller, then copied. used for created names ("4f") */
|
||||
/* Returned to caller, then copied. Used for created names ("4f"). */
|
||||
static char symbol_name_build[24];
|
||||
register char *p;
|
||||
register char *q;
|
||||
char symbol_name_temporary[20]; /* build up a number, BACKWARDS */
|
||||
char symbol_name_temporary[20]; /* Build up a number, BACKWARDS. */
|
||||
|
||||
know (n >= 0);
|
||||
know (augend == 0 || augend == 1);
|
||||
|
@ -1344,7 +1319,7 @@ dollar_label_name (n, augend)
|
|||
*p++ = 'L';
|
||||
|
||||
/* Next code just does sprintf( {}, "%d", n); */
|
||||
/* label number */
|
||||
/* Label number. */
|
||||
q = symbol_name_temporary;
|
||||
for (*q++ = 0, i = n; i; ++q)
|
||||
{
|
||||
|
@ -1356,7 +1331,7 @@ dollar_label_name (n, augend)
|
|||
|
||||
*p++ = 1; /* ^A */
|
||||
|
||||
/* instance number */
|
||||
/* Instance number. */
|
||||
q = symbol_name_temporary;
|
||||
for (*q++ = 0, i = dollar_label_instance (n) + augend; i; ++q)
|
||||
{
|
||||
|
@ -1369,23 +1344,22 @@ dollar_label_name (n, augend)
|
|||
return symbol_name_build;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sombody else's idea of local labels. They are made by "n:" where n
|
||||
* is any decimal digit. Refer to them with
|
||||
* "nb" for previous (backward) n:
|
||||
* or "nf" for next (forward) n:.
|
||||
*
|
||||
* We do a little better and let n be any number, not just a single digit, but
|
||||
* since the other guy's assembler only does ten, we treat the first ten
|
||||
* specially.
|
||||
*
|
||||
* Like someone else's assembler, we have one set of local label counters for
|
||||
* entire assembly, not one set per (sub)segment like in most assemblers. This
|
||||
* implies that one can refer to a label in another segment, and indeed some
|
||||
* crufty compilers have done just that.
|
||||
*
|
||||
* Since there could be a LOT of these things, treat them as a sparse array.
|
||||
*/
|
||||
/* Sombody else's idea of local labels. They are made by "n:" where n
|
||||
is any decimal digit. Refer to them with
|
||||
"nb" for previous (backward) n:
|
||||
or "nf" for next (forward) n:.
|
||||
|
||||
We do a little better and let n be any number, not just a single digit, but
|
||||
since the other guy's assembler only does ten, we treat the first ten
|
||||
specially.
|
||||
|
||||
Like someone else's assembler, we have one set of local label counters for
|
||||
entire assembly, not one set per (sub)segment like in most assemblers. This
|
||||
implies that one can refer to a label in another segment, and indeed some
|
||||
crufty compilers have done just that.
|
||||
|
||||
Since there could be a LOT of these things, treat them as a sparse
|
||||
array. */
|
||||
|
||||
#define FB_LABEL_SPECIAL (10)
|
||||
|
||||
|
@ -1395,16 +1369,17 @@ static long *fb_label_instances;
|
|||
static long fb_label_count;
|
||||
static long fb_label_max;
|
||||
|
||||
/* this must be more than FB_LABEL_SPECIAL */
|
||||
/* This must be more than FB_LABEL_SPECIAL. */
|
||||
#define FB_LABEL_BUMP_BY (FB_LABEL_SPECIAL + 6)
|
||||
|
||||
static void
|
||||
fb_label_init ()
|
||||
{
|
||||
memset ((void *) fb_low_counter, '\0', sizeof (fb_low_counter));
|
||||
} /* fb_label_init() */
|
||||
}
|
||||
|
||||
/* Add one to the instance number of this fb label. */
|
||||
|
||||
/* add one to the instance number of this fb label */
|
||||
void
|
||||
fb_label_instance_inc (label)
|
||||
long label;
|
||||
|
@ -1430,7 +1405,7 @@ fb_label_instance_inc (label)
|
|||
} /* for each existing label */
|
||||
}
|
||||
|
||||
/* if we get to here, we don't have label listed yet. */
|
||||
/* If we get to here, we don't have label listed yet. */
|
||||
|
||||
if (fb_labels == NULL)
|
||||
{
|
||||
|
@ -1482,30 +1457,28 @@ fb_label_instance (label)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* fb_label_name()
|
||||
*
|
||||
* Caller must copy returned name: we re-use the area for the next name.
|
||||
*
|
||||
* The mth occurence of label n: is turned into the symbol "Ln^Bm"
|
||||
* where n is the label number and m is the instance number. "L" makes
|
||||
* it a label discarded unless debugging and "^B"('\2') ensures no
|
||||
* ordinary symbol SHOULD get the same name as a local label
|
||||
* symbol. The first "4:" is "L4^B1" - the m numbers begin at 1.
|
||||
*
|
||||
* dollar labels get the same treatment, except that ^A is used in place of ^B. */
|
||||
/* Caller must copy returned name: we re-use the area for the next name.
|
||||
|
||||
The mth occurence of label n: is turned into the symbol "Ln^Bm"
|
||||
where n is the label number and m is the instance number. "L" makes
|
||||
it a label discarded unless debugging and "^B"('\2') ensures no
|
||||
ordinary symbol SHOULD get the same name as a local label
|
||||
symbol. The first "4:" is "L4^B1" - the m numbers begin at 1.
|
||||
|
||||
dollar labels get the same treatment, except that ^A is used in
|
||||
place of ^B. */
|
||||
|
||||
char * /* Return local label name. */
|
||||
fb_label_name (n, augend)
|
||||
long n; /* we just saw "n:", "nf" or "nb" : n a number */
|
||||
long augend; /* 0 for nb, 1 for n:, nf */
|
||||
long n; /* We just saw "n:", "nf" or "nb" : n a number. */
|
||||
long augend; /* 0 for nb, 1 for n:, nf. */
|
||||
{
|
||||
long i;
|
||||
/* Returned to caller, then copied. used for created names ("4f") */
|
||||
/* Returned to caller, then copied. Used for created names ("4f"). */
|
||||
static char symbol_name_build[24];
|
||||
register char *p;
|
||||
register char *q;
|
||||
char symbol_name_temporary[20]; /* build up a number, BACKWARDS */
|
||||
char symbol_name_temporary[20]; /* Build up a number, BACKWARDS. */
|
||||
|
||||
know (n >= 0);
|
||||
know (augend == 0 || augend == 1);
|
||||
|
@ -1513,7 +1486,7 @@ fb_label_name (n, augend)
|
|||
*p++ = 'L';
|
||||
|
||||
/* Next code just does sprintf( {}, "%d", n); */
|
||||
/* label number */
|
||||
/* Label number. */
|
||||
q = symbol_name_temporary;
|
||||
for (*q++ = 0, i = n; i; ++q)
|
||||
{
|
||||
|
@ -1525,7 +1498,7 @@ fb_label_name (n, augend)
|
|||
|
||||
*p++ = 2; /* ^B */
|
||||
|
||||
/* instance number */
|
||||
/* Instance number. */
|
||||
q = symbol_name_temporary;
|
||||
for (*q++ = 0, i = fb_label_instance (n) + augend; i; ++q)
|
||||
{
|
||||
|
@ -1536,13 +1509,11 @@ fb_label_name (n, augend)
|
|||
|
||||
/* The label, as a '\0' ended string, starts at symbol_name_build. */
|
||||
return (symbol_name_build);
|
||||
} /* fb_label_name() */
|
||||
}
|
||||
|
||||
/*
|
||||
* decode name that may have been generated by foo_label_name() above. If
|
||||
* the name wasn't generated by foo_label_name(), then return it unaltered.
|
||||
* This is used for error messages.
|
||||
*/
|
||||
/* Decode name that may have been generated by foo_label_name() above.
|
||||
If the name wasn't generated by foo_label_name(), then return it
|
||||
unaltered. This is used for error messages. */
|
||||
|
||||
char *
|
||||
decode_local_label_name (s)
|
||||
|
@ -1678,7 +1649,7 @@ S_IS_EXTERNAL (s)
|
|||
|
||||
flags = s->bsym->flags;
|
||||
|
||||
/* sanity check */
|
||||
/* Sanity check. */
|
||||
if ((flags & BSF_LOCAL) && (flags & BSF_GLOBAL))
|
||||
abort ();
|
||||
|
||||
|
@ -1735,7 +1706,7 @@ S_IS_LOCAL (s)
|
|||
|
||||
flags = s->bsym->flags;
|
||||
|
||||
/* sanity check */
|
||||
/* Sanity check. */
|
||||
if ((flags & BSF_LOCAL) && (flags & BSF_GLOBAL))
|
||||
abort ();
|
||||
|
||||
|
@ -2125,7 +2096,7 @@ symbol_section_p (s)
|
|||
#ifdef BFD_ASSEMBLER
|
||||
return (s->bsym->flags & BSF_SECTION_SYM) != 0;
|
||||
#else
|
||||
/* FIXME */
|
||||
/* FIXME. */
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
@ -2258,8 +2229,6 @@ symbol_begin ()
|
|||
if (LOCAL_LABELS_FB)
|
||||
fb_label_init ();
|
||||
}
|
||||
|
||||
|
||||
|
||||
int indent_level;
|
||||
|
||||
|
@ -2506,5 +2475,3 @@ symbol_print_statistics (file)
|
|||
local_symbol_count, local_symbol_conversion_count);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* end of symbols.c */
|
||||
|
|
Loading…
Reference in a new issue