* mipsread.c (mipscoff_symfile_read): Eliminate a lot of
useless code, including an lseek to an uninitialized variable. Reported by Jim Williams <jimbo@wrs.com>.
This commit is contained in:
parent
f0280cd218
commit
bec9fad905
|
@ -2,6 +2,12 @@ Fri Mar 13 15:51:11 1992 K. Richard Pixley (rich@cygnus.com)
|
|||
|
||||
* Makefile.in: pass MAKEINFO down on info.
|
||||
|
||||
Fri Mar 13 12:56:36 1992 John Gilmore (gnu at cygnus.com)
|
||||
|
||||
* mipsread.c (mipscoff_symfile_read): Eliminate a lot of
|
||||
useless code, including an lseek to an uninitialized variable.
|
||||
Reported by Jim Williams <jimbo@wrs.com>.
|
||||
|
||||
Thu Mar 12 11:56:46 1992 Per Bothner (bothner@cygnus.com)
|
||||
|
||||
Merged in patches from metin@ibmpa.awdpa.ibm.com (Metin G.
|
||||
|
|
|
@ -287,23 +287,13 @@ mipscoff_symfile_read(sf, addr, mainline)
|
|||
CORE_ADDR addr;
|
||||
int mainline;
|
||||
{
|
||||
struct coff_symfile_info *info = (struct coff_symfile_info *)sf->sym_private;
|
||||
bfd *abfd = sf->objfile->obfd;
|
||||
char *name = bfd_get_filename (abfd);
|
||||
int desc;
|
||||
register int val;
|
||||
int symtab_offset;
|
||||
int stringtab_offset;
|
||||
|
||||
/* WARNING WILL ROBINSON! ACCESSING BFD-PRIVATE DATA HERE! FIXME! */
|
||||
desc = fileno ((FILE *)(abfd->iostream)); /* Raw file descriptor */
|
||||
/* End of warning */
|
||||
|
||||
/* Position to read the symbol table. */
|
||||
val = lseek (desc, (long)symtab_offset, 0);
|
||||
if (val < 0)
|
||||
perror_with_name (name);
|
||||
|
||||
init_minimal_symbol_collection ();
|
||||
make_cleanup (discard_minimal_symbols, 0);
|
||||
|
||||
|
@ -393,8 +383,7 @@ read_the_mips_symtab(abfd, fsym, end_of_text_segp)
|
|||
/* Header for executable/object file we read symbols from */
|
||||
struct coff_exec filhdr;
|
||||
|
||||
/* We get here with DESC pointing to the symtab header. But we need
|
||||
* other info from the initial headers */
|
||||
/* We need some info from the initial headers */
|
||||
lseek(fsym, 0L, 0);
|
||||
myread(fsym, (char *)&filhdr, sizeof filhdr);
|
||||
|
||||
|
@ -455,11 +444,12 @@ fixup_symtab (hdr, data, f_ptr, abfd)
|
|||
int f_ptr;
|
||||
bfd *abfd;
|
||||
{
|
||||
int f_idx, s_idx;
|
||||
int f_idx, s_idx, i;
|
||||
FDR *fh;
|
||||
SYMR *sh;
|
||||
PDR *pr;
|
||||
EXTR *esh;
|
||||
struct rfd_ext *rbase;
|
||||
|
||||
/* This function depends on the external and internal forms
|
||||
of the MIPS symbol table taking identical space. Check this
|
||||
|
@ -474,6 +464,8 @@ fixup_symtab (hdr, data, f_ptr, abfd)
|
|||
static check_sym2[1 + sizeof (SYMR) - sizeof (struct sym_ext)] = {0};
|
||||
static check_ext1[1 + sizeof (struct ext_ext) - sizeof (EXTR)] = {0};
|
||||
static check_ext2[1 + sizeof (EXTR) - sizeof (struct ext_ext)] = {0};
|
||||
static check_rfd1[1 + sizeof (struct rfd_ext) - sizeof (RFDT)] = {0};
|
||||
static check_rfd2[1 + sizeof (RFDT) - sizeof (struct rfd_ext)] = {0};
|
||||
|
||||
/* Swap in the header record. */
|
||||
ecoff_swap_hdr_in (abfd, hdr, hdr);
|
||||
|
@ -501,6 +493,11 @@ fixup_symtab (hdr, data, f_ptr, abfd)
|
|||
FIX(cbExtOffset);
|
||||
#undef FIX
|
||||
|
||||
/* Fix all the RFD's. */
|
||||
rbase = (struct rfd_ext *)(hdr->cbRfdOffset);
|
||||
for (i = 0; i < hdr->crfd; i++) {
|
||||
ecoff_swap_rfd_in (abfd, rbase+i, (pRFDT) rbase+i);
|
||||
}
|
||||
|
||||
/* Fix all string pointers inside the symtab, and
|
||||
the FDR records. Also fix other miscellany. */
|
||||
|
@ -1966,7 +1963,6 @@ parse_partial_symbols(end_of_text_seg, objfile)
|
|||
else {
|
||||
register struct partial_symbol *psym;
|
||||
for (cur_sdx = 0; cur_sdx < fh->csym; ) {
|
||||
register struct partial_symbol *p;
|
||||
char *name;
|
||||
int class;
|
||||
sh = cur_sdx + (SYMR *) fh->isymBase;
|
||||
|
@ -2028,7 +2024,9 @@ parse_partial_symbols(end_of_text_seg, objfile)
|
|||
case stEnd: /* Ends of files */
|
||||
goto skip;
|
||||
default:
|
||||
complain (&unknown_sym_complaint, SYMBOL_NAME(p));
|
||||
/* Both complaints are valid: one gives symbol name,
|
||||
the other the offending symbol type. */
|
||||
complain (&unknown_sym_complaint, (char *)sh->iss);
|
||||
complain (&unknown_st_complaint, sh->st);
|
||||
cur_sdx++;
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue