mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 06:17:47 +08:00
Fix 2 xcoff line number problems
This commit is contained in:
@ -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>
|
2001-10-07 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* config/obj-elf.c: Standardize error/warning messages - don't
|
* config/obj-elf.c: Standardize error/warning messages - don't
|
||||||
|
@ -1309,6 +1309,7 @@ coff_frob_symbol (symp, punt)
|
|||||||
set_end = next_set_end;
|
set_end = next_set_end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef OBJ_XCOFF
|
||||||
if (! *punt
|
if (! *punt
|
||||||
&& S_GET_STORAGE_CLASS (symp) == C_FCN
|
&& S_GET_STORAGE_CLASS (symp) == C_FCN
|
||||||
&& strcmp (S_GET_NAME (symp), ".bf") == 0)
|
&& strcmp (S_GET_NAME (symp), ".bf") == 0)
|
||||||
@ -1317,7 +1318,7 @@ coff_frob_symbol (symp, punt)
|
|||||||
SA_SET_SYM_ENDNDX (coff_last_bf, symp);
|
SA_SET_SYM_ENDNDX (coff_last_bf, symp);
|
||||||
coff_last_bf = symp;
|
coff_last_bf = symp;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if (coffsymbol (symbol_get_bfdsym (symp))->lineno)
|
if (coffsymbol (symbol_get_bfdsym (symp))->lineno)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -3168,7 +3168,10 @@ ppc_function (ignore)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* The .bf pseudo-op. This is just like a COFF C_FCN symbol named
|
/* 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
|
static void
|
||||||
ppc_bf (ignore)
|
ppc_bf (ignore)
|
||||||
@ -3187,6 +3190,14 @@ ppc_bf (ignore)
|
|||||||
S_SET_NUMBER_AUXILIARY (sym, 1);
|
S_SET_NUMBER_AUXILIARY (sym, 1);
|
||||||
SA_SET_SYM_LNNO (sym, coff_line_base);
|
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;
|
symbol_get_tc (sym)->output = 1;
|
||||||
|
|
||||||
ppc_frob_label (sym);
|
ppc_frob_label (sym);
|
||||||
@ -3220,7 +3231,8 @@ ppc_ef (ignore)
|
|||||||
|
|
||||||
/* The .bi and .ei pseudo-ops. These take a string argument and
|
/* 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
|
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
|
static void
|
||||||
ppc_biei (ei)
|
ppc_biei (ei)
|
||||||
@ -3250,6 +3262,12 @@ ppc_biei (ei)
|
|||||||
S_SET_STORAGE_CLASS (sym, ei ? C_EINCL : C_BINCL);
|
S_SET_STORAGE_CLASS (sym, ei ? C_EINCL : C_BINCL);
|
||||||
symbol_get_tc (sym)->output = 1;
|
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;
|
for (look = last_biei ? last_biei : symbol_rootP;
|
||||||
(look != (symbolS *) NULL
|
(look != (symbolS *) NULL
|
||||||
&& (S_GET_STORAGE_CLASS (look) == C_FILE
|
&& (S_GET_STORAGE_CLASS (look) == C_FILE
|
||||||
|
Reference in New Issue
Block a user