Fix 2 xcoff line number problems

This commit is contained in:
Tom Rix 2001-10-08 18:14:43 +00:00
parent ab7f1108bf
commit 8642cce86a
3 changed files with 28 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2001-10-08 Tom Rix <trix@redhat.com>
* config/tc-ppc (ppc_bf, ppc_biei) : Set first .bi lineno value to
location of next .bf
* config/obj-coff.c (coff_frob_symbol) : XCOFF does not use endndx.
2001-10-07 Alan Modra <amodra@bigpond.net.au>
* config/obj-elf.c: Standardize error/warning messages - don't

View file

@ -1309,6 +1309,7 @@ coff_frob_symbol (symp, punt)
set_end = next_set_end;
}
#ifndef OBJ_XCOFF
if (! *punt
&& S_GET_STORAGE_CLASS (symp) == C_FCN
&& strcmp (S_GET_NAME (symp), ".bf") == 0)
@ -1317,7 +1318,7 @@ coff_frob_symbol (symp, punt)
SA_SET_SYM_ENDNDX (coff_last_bf, symp);
coff_last_bf = symp;
}
#endif
if (coffsymbol (symbol_get_bfdsym (symp))->lineno)
{
int i;

View file

@ -3168,7 +3168,10 @@ ppc_function (ignore)
}
/* The .bf pseudo-op. This is just like a COFF C_FCN symbol named
".bf". */
".bf". If the pseudo op .bi was seen before .bf, patch the .bi sym
with the correct line number */
static symbolS *saved_bi_sym = 0;
static void
ppc_bf (ignore)
@ -3187,6 +3190,14 @@ ppc_bf (ignore)
S_SET_NUMBER_AUXILIARY (sym, 1);
SA_SET_SYM_LNNO (sym, coff_line_base);
/* Line number for bi. */
if (saved_bi_sym)
{
S_SET_VALUE (saved_bi_sym, coff_n_line_nos);
saved_bi_sym = 0;
}
symbol_get_tc (sym)->output = 1;
ppc_frob_label (sym);
@ -3220,7 +3231,8 @@ ppc_ef (ignore)
/* The .bi and .ei pseudo-ops. These take a string argument and
generates a C_BINCL or C_EINCL symbol, which goes at the start of
the symbol list. */
the symbol list. The value of .bi will be know when the next .bf
is encountered. */
static void
ppc_biei (ei)
@ -3250,6 +3262,12 @@ ppc_biei (ei)
S_SET_STORAGE_CLASS (sym, ei ? C_EINCL : C_BINCL);
symbol_get_tc (sym)->output = 1;
/* Save bi. */
if (ei)
saved_bi_sym = 0;
else
saved_bi_sym = sym;
for (look = last_biei ? last_biei : symbol_rootP;
(look != (symbolS *) NULL
&& (S_GET_STORAGE_CLASS (look) == C_FILE