* stabsread.h, dbxread.c (end_psymtab): Return NULL if the psymtab

was empty and thrown away.
	* mipsread.c (parse_partial_symbols):  Do not add empty psymtabs to
	dependency list, skip self dependencies.
	* mipsread.c (parse_fdr):  Removed, obsolete.
	* mipsread.c (parse_lines):  Check for cbLine being zero, not
	cbLineOffset.
	* mipsread.c (struct symloc):  Add pst_language.
	* mipsread.c (parse_partial_symbols):  Set up proper language for header
	files, save it in pst_language for psymtab_to_symtab_1.
	* mipsread.c (psymtab_to_symtab_1):  Use pst_language.
This commit is contained in:
Peter Schauer 1993-08-30 19:50:47 +00:00
parent 4360308809
commit cbba020f3f
4 changed files with 92 additions and 149 deletions

View file

@ -1,3 +1,17 @@
Mon Aug 30 12:47:46 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
* stabsread.h, dbxread.c (end_psymtab): Return NULL if the psymtab
was empty and thrown away.
* mipsread.c (parse_partial_symbols): Do not add empty psymtabs to
dependency list, skip self dependencies.
* mipsread.c (parse_fdr): Removed, obsolete.
* mipsread.c (parse_lines): Check for cbLine being zero, not
cbLineOffset.
* mipsread.c (struct symloc): Add pst_language.
* mipsread.c (parse_partial_symbols): Set up proper language for header
files, save it in pst_language for psymtab_to_symtab_1.
* mipsread.c (psymtab_to_symtab_1): Use pst_language.
Mon Aug 30 10:48:06 1993 Jim Kingdon (kingdon@lioth.cygnus.com) Mon Aug 30 10:48:06 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* configure.in: Fix typo m88*-motorola-svr4* -> sysv4*. * configure.in: Fix typo m88*-motorola-svr4* -> sysv4*.

View file

@ -1049,19 +1049,12 @@ start_psymtab (objfile, section_offsets,
return result; return result;
} }
/* Close off the current usage of a partial_symbol table entry. This /* Close off the current usage of PST.
involves setting the correct number of includes (with a realloc), Returns PST or NULL if the partial symtab was empty and thrown away.
setting the high text mark, setting the symbol length in the
executable, and setting the length of the global and static lists
of psymbols.
The global symbols and static symbols are then seperately sorted. FIXME: List variables and peculiarities of same. */
Then the partial symtab is put on the global list. struct partial_symtab *
*** List variables and peculiarities of same. ***
*/
void
end_psymtab (pst, include_list, num_includes, capping_symbol_offset, end_psymtab (pst, include_list, num_includes, capping_symbol_offset,
capping_text, dependency_list, number_dependencies) capping_text, dependency_list, number_dependencies)
struct partial_symtab *pst; struct partial_symtab *pst;
@ -1245,7 +1238,11 @@ end_psymtab (pst, include_list, num_includes, capping_symbol_offset,
pst->next = pst->objfile->free_psymtabs; pst->next = pst->objfile->free_psymtabs;
pst->objfile->free_psymtabs = pst; pst->objfile->free_psymtabs = pst;
/* Indicate that psymtab was thrown away. */
pst = (struct partial_symtab *)NULL;
} }
return pst;
} }
static void static void

View file

@ -129,6 +129,7 @@ struct symloc
EXTR *extern_tab; /* Pointer to external symbols for this file. */ EXTR *extern_tab; /* Pointer to external symbols for this file. */
int extern_count; /* Size of extern_tab. */ int extern_count; /* Size of extern_tab. */
struct mips_pending **pending_list; struct mips_pending **pending_list;
enum language pst_language;
}; };
/* Things we import explicitly from other modules */ /* Things we import explicitly from other modules */
@ -162,7 +163,7 @@ struct complaint block_overflow_complaint =
{"block containing %s overfilled", 0, 0}; {"block containing %s overfilled", 0, 0};
struct complaint basic_type_complaint = struct complaint basic_type_complaint =
{"cannot map MIPS basic type 0x%x", 0, 0}; {"cannot map MIPS basic type 0x%x for %s", 0, 0};
struct complaint unknown_type_qual_complaint = struct complaint unknown_type_qual_complaint =
{"unknown type qualifier 0x%x", 0, 0}; {"unknown type qualifier 0x%x", 0, 0};
@ -195,10 +196,10 @@ struct complaint bad_setjmp_pdr_complaint =
{"fixing bad setjmp PDR from libc", 0, 0}; {"fixing bad setjmp PDR from libc", 0, 0};
struct complaint bad_fbitfield_complaint = struct complaint bad_fbitfield_complaint =
{"can't handle TIR fBitfield", 0, 0}; {"can't handle TIR fBitfield for %s", 0, 0};
struct complaint bad_rfd_entry_complaint = struct complaint bad_rfd_entry_complaint =
{"bad rfd entry for file %d, index %d", 0, 0}; {"bad rfd entry for %s: file %d, index %d", 0, 0};
struct complaint unexpected_type_code_complaint = struct complaint unexpected_type_code_complaint =
{"unexpected type code for %s", 0, 0}; {"unexpected type code for %s", 0, 0};
@ -274,7 +275,7 @@ parse_partial_symbols PARAMS ((struct objfile *,
static int static int
cross_ref PARAMS ((union aux_ext *, struct type **, enum type_code, char **, cross_ref PARAMS ((union aux_ext *, struct type **, enum type_code, char **,
int)); int, char *));
static void static void
fixup_sigtramp PARAMS ((void)); fixup_sigtramp PARAMS ((void));
@ -298,7 +299,7 @@ static struct blockvector *
new_bvect PARAMS ((int)); new_bvect PARAMS ((int));
static struct type * static struct type *
parse_type PARAMS ((union aux_ext *, int *, int)); parse_type PARAMS ((union aux_ext *, int *, int, char *));
static struct symbol * static struct symbol *
mylookup_symbol PARAMS ((char *, struct block *, enum namespace, mylookup_symbol PARAMS ((char *, struct block *, enum namespace,
@ -319,11 +320,6 @@ compare_blocks PARAMS ((const void *, const void *));
static struct partial_symtab * static struct partial_symtab *
new_psymtab PARAMS ((char *, struct objfile *)); new_psymtab PARAMS ((char *, struct objfile *));
#if 0
static struct partial_symtab *
parse_fdr PARAMS ((int, int, struct objfile *));
#endif
static void static void
psymtab_to_symtab_1 PARAMS ((struct partial_symtab *, char *)); psymtab_to_symtab_1 PARAMS ((struct partial_symtab *, char *));
@ -780,7 +776,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
sh->index == 0xfffff) sh->index == 0xfffff)
SYMBOL_TYPE (s) = builtin_type_int; /* undefined? */ SYMBOL_TYPE (s) = builtin_type_int; /* undefined? */
else else
SYMBOL_TYPE (s) = parse_type (ax + sh->index, 0, bigend); SYMBOL_TYPE (s) = parse_type (ax + sh->index, 0, bigend, name);
/* Value of a data symbol is its memory address */ /* Value of a data symbol is its memory address */
break; break;
@ -816,7 +812,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
break; break;
} }
SYMBOL_VALUE (s) = sh->value; SYMBOL_VALUE (s) = sh->value;
SYMBOL_TYPE (s) = parse_type (ax + sh->index, 0, bigend); SYMBOL_TYPE (s) = parse_type (ax + sh->index, 0, bigend, name);
add_symbol (s, top_stack->cur_block); add_symbol (s, top_stack->cur_block);
#if 0 #if 0
/* FIXME: This has not been tested. See dbxread.c */ /* FIXME: This has not been tested. See dbxread.c */
@ -844,7 +840,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
if (sh->sc == scUndefined || sh->sc == scNil) if (sh->sc == scUndefined || sh->sc == scNil)
t = builtin_type_int; t = builtin_type_int;
else else
t = parse_type (ax + sh->index + 1, 0, bigend); t = parse_type (ax + sh->index + 1, 0, bigend, name);
b = top_stack->cur_block; b = top_stack->cur_block;
if (sh->st == stProc) if (sh->st == stProc)
{ {
@ -1202,7 +1198,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
f->name = name; f->name = name;
f->bitpos = sh->value; f->bitpos = sh->value;
f->bitsize = 0; f->bitsize = 0;
f->type = parse_type (ax + sh->index, &f->bitsize, bigend); f->type = parse_type (ax + sh->index, &f->bitsize, bigend, name);
break; break;
case stTypedef: /* type definition */ case stTypedef: /* type definition */
@ -1211,7 +1207,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
SYMBOL_CLASS (s) = LOC_TYPEDEF; SYMBOL_CLASS (s) = LOC_TYPEDEF;
SYMBOL_BLOCK_VALUE (s) = top_stack->cur_block; SYMBOL_BLOCK_VALUE (s) = top_stack->cur_block;
add_symbol (s, top_stack->cur_block); add_symbol (s, top_stack->cur_block);
SYMBOL_TYPE (s) = parse_type (ax + sh->index, 0, bigend); SYMBOL_TYPE (s) = parse_type (ax + sh->index, 0, bigend, name);
sh->value = (long) SYMBOL_TYPE (s); sh->value = (long) SYMBOL_TYPE (s);
sh->st = stParsed; sh->st = stParsed;
if (TYPE_TAG_NAME (SYMBOL_TYPE (s)) != NULL if (TYPE_TAG_NAME (SYMBOL_TYPE (s)) != NULL
@ -1279,10 +1275,11 @@ parse_symbol (sh, ax, ext_sh, bigend)
they are big-endian or little-endian (from fh->fBigendian). */ they are big-endian or little-endian (from fh->fBigendian). */
static struct type * static struct type *
parse_type (ax, bs, bigend) parse_type (ax, bs, bigend, sym_name)
union aux_ext *ax; union aux_ext *ax;
int *bs; int *bs;
int bigend; int bigend;
char *sym_name;
{ {
/* Null entries in this map are treated specially */ /* Null entries in this map are treated specially */
static struct type **map_bt[] = static struct type **map_bt[] =
@ -1326,9 +1323,9 @@ parse_type (ax, bs, bigend)
/* Use aux as a type information record, map its basic type. */ /* Use aux as a type information record, map its basic type. */
tax = ax; tax = ax;
ecoff_swap_tir_in (bigend, &tax->a_ti, t); ecoff_swap_tir_in (bigend, &tax->a_ti, t);
if (t->bt > (sizeof (map_bt) / sizeof (*map_bt))) if (t->bt >= (sizeof (map_bt) / sizeof (*map_bt)))
{ {
complain (&basic_type_complaint, t->bt); complain (&basic_type_complaint, t->bt, sym_name);
return builtin_type_int; return builtin_type_int;
} }
if (map_bt[t->bt]) if (map_bt[t->bt])
@ -1361,7 +1358,7 @@ parse_type (ax, bs, bigend)
break; break;
case btTypedef: case btTypedef:
default: default:
complain (&basic_type_complaint, t->bt); complain (&basic_type_complaint, t->bt, sym_name);
return builtin_type_int; return builtin_type_int;
} }
} }
@ -1388,7 +1385,7 @@ parse_type (ax, bs, bigend)
corrupt the TIR. */ corrupt the TIR. */
if (bs == (int *)NULL) if (bs == (int *)NULL)
{ {
complain (&bad_fbitfield_complaint, t->bt); complain (&bad_fbitfield_complaint, sym_name);
return builtin_type_int; return builtin_type_int;
} }
*bs = AUX_GET_WIDTH (bigend, ax); *bs = AUX_GET_WIDTH (bigend, ax);
@ -1409,7 +1406,7 @@ parse_type (ax, bs, bigend)
char *name; char *name;
/* Try to cross reference this type */ /* Try to cross reference this type */
ax += cross_ref (ax, &tp, type_code, &name, bigend); ax += cross_ref (ax, &tp, type_code, &name, bigend, sym_name);
/* reading .o file ? */ /* reading .o file ? */
if (tp == (struct type *) NULL) if (tp == (struct type *) NULL)
tp = init_type (type_code, 0, 0, (char *) NULL, tp = init_type (type_code, 0, 0, (char *) NULL,
@ -1422,7 +1419,7 @@ parse_type (ax, bs, bigend)
&& TYPE_CODE (tp) != TYPE_CODE_UNION && TYPE_CODE (tp) != TYPE_CODE_UNION
&& TYPE_CODE (tp) != TYPE_CODE_ENUM) && TYPE_CODE (tp) != TYPE_CODE_ENUM)
{ {
complain (&unexpected_type_code_complaint, name); complain (&unexpected_type_code_complaint, sym_name);
} }
else else
{ {
@ -1431,7 +1428,7 @@ parse_type (ax, bs, bigend)
exception is if we guessed wrong re struct/union/enum. */ exception is if we guessed wrong re struct/union/enum. */
if (TYPE_CODE (tp) != type_code) if (TYPE_CODE (tp) != type_code)
{ {
complain (&bad_tag_guess_complaint, name); complain (&bad_tag_guess_complaint, sym_name);
TYPE_CODE (tp) = type_code; TYPE_CODE (tp) = type_code;
} }
/* Do not set the tag name if it is a compiler generated tag name /* Do not set the tag name if it is a compiler generated tag name
@ -1456,7 +1453,7 @@ parse_type (ax, bs, bigend)
char *name; char *name;
/* Try to cross reference this type */ /* Try to cross reference this type */
ax += cross_ref (ax, &tp, type_code, &name, bigend); ax += cross_ref (ax, &tp, type_code, &name, bigend, sym_name);
/* reading .o file ? */ /* reading .o file ? */
if (tp == (struct type *) NULL) if (tp == (struct type *) NULL)
tp = init_type (type_code, 0, 0, (char *) NULL, tp = init_type (type_code, 0, 0, (char *) NULL,
@ -1467,7 +1464,7 @@ parse_type (ax, bs, bigend)
are corrupted. */ are corrupted. */
if (TYPE_CODE (tp) != TYPE_CODE_RANGE) if (TYPE_CODE (tp) != TYPE_CODE_RANGE)
{ {
complain (&unexpected_type_code_complaint, name); complain (&unexpected_type_code_complaint, sym_name);
} }
else else
{ {
@ -1475,7 +1472,7 @@ parse_type (ax, bs, bigend)
exception is if we guessed wrong re struct/union/enum. */ exception is if we guessed wrong re struct/union/enum. */
if (TYPE_CODE (tp) != type_code) if (TYPE_CODE (tp) != type_code)
{ {
complain (&bad_tag_guess_complaint, name); complain (&bad_tag_guess_complaint, sym_name);
TYPE_CODE (tp) = type_code; TYPE_CODE (tp) = type_code;
} }
if (TYPE_NAME (tp) == NULL || !STREQ (TYPE_NAME (tp), name)) if (TYPE_NAME (tp) == NULL || !STREQ (TYPE_NAME (tp), name))
@ -1578,7 +1575,7 @@ upgrade_type (tpp, tq, ax, bigend)
indx = parse_type ((ecoff_data (cur_bfd)->external_aux indx = parse_type ((ecoff_data (cur_bfd)->external_aux
+ fh->iauxBase + fh->iauxBase
+ id), + id),
(int *) NULL, bigend); (int *) NULL, bigend, "<array index>");
/* Get the bounds, and create the array type. */ /* Get the bounds, and create the array type. */
ax++; ax++;
@ -1864,7 +1861,7 @@ parse_lines (fh, pr, lt)
int delta, count, lineno = 0; int delta, count, lineno = 0;
unsigned long first_off = pr->adr; unsigned long first_off = pr->adr;
if (fh->cbLineOffset == 0) if (fh->cbLine == 0)
return; return;
base = ecoff_data (cur_bfd)->line + fh->cbLineOffset; base = ecoff_data (cur_bfd)->line + fh->cbLineOffset;
@ -1962,6 +1959,7 @@ parse_partial_symbols (objfile, section_offsets)
int dependencies_used, dependencies_allocated; int dependencies_used, dependencies_allocated;
struct cleanup *old_chain; struct cleanup *old_chain;
char *name; char *name;
enum language prev_language;
extern_tab = (EXTR *) obstack_alloc (&objfile->psymbol_obstack, extern_tab = (EXTR *) obstack_alloc (&objfile->psymbol_obstack,
sizeof (EXTR) * hdr->iextMax); sizeof (EXTR) * hdr->iextMax);
@ -2098,19 +2096,24 @@ parse_partial_symbols (objfile, section_offsets)
memset ((PTR) pst->read_symtab_private, 0, sizeof (struct symloc)); memset ((PTR) pst->read_symtab_private, 0, sizeof (struct symloc));
save_pst = pst; save_pst = pst;
/* Make everything point to everything. */
FDR_IDX (pst) = f_idx; FDR_IDX (pst) = f_idx;
fdr_to_pst[f_idx].pst = pst;
/* FIXME: This tampers with data from BFD. */
fh->ioptBase = (int) pst;
CUR_BFD (pst) = cur_bfd; CUR_BFD (pst) = cur_bfd;
/* The way to turn this into a symtab is to call... */ /* The way to turn this into a symtab is to call... */
pst->read_symtab = mipscoff_psymtab_to_symtab; pst->read_symtab = mipscoff_psymtab_to_symtab;
/* Set up language for the pst. Native ecoff has every header file in
a separate FDR. deduce_language_from_filename will return
language_unknown for a header file, which is not what we want.
But the FDRs for the header files are after the FDR for the source
file, so we can assign the language of the source file to the
following header files. Then we save the language in the private
pst data so that we can reuse it when building symtabs. */
prev_language = psymtab_language;
psymtab_language = deduce_language_from_filename (fdr_name (fh)); psymtab_language = deduce_language_from_filename (fdr_name (fh));
if (psymtab_language == language_unknown)
psymtab_language = prev_language;
PST_PRIVATE (pst)->pst_language = psymtab_language;
pst->texthigh = pst->textlow; pst->texthigh = pst->textlow;
@ -2372,9 +2375,12 @@ parse_partial_symbols (objfile, section_offsets)
} }
} }
end_psymtab (save_pst, psymtab_include_list, includes_used, /* Link pst to FDR. end_psymtab returns NULL if the psymtab was
-1, save_pst->texthigh, empty and put on the free list. */
dependency_list, dependencies_used); fdr_to_pst[f_idx].pst = end_psymtab (save_pst,
psymtab_include_list, includes_used,
-1, save_pst->texthigh,
dependency_list, dependencies_used);
if (objfile->ei.entry_point >= save_pst->textlow && if (objfile->ei.entry_point >= save_pst->textlow &&
objfile->ei.entry_point < save_pst->texthigh) objfile->ei.entry_point < save_pst->texthigh)
{ {
@ -2390,6 +2396,9 @@ parse_partial_symbols (objfile, section_offsets)
fh = f_idx + ecoff_data (cur_bfd)->fdr; fh = f_idx + ecoff_data (cur_bfd)->fdr;
pst = fdr_to_pst[f_idx].pst; pst = fdr_to_pst[f_idx].pst;
if (pst == (struct partial_symtab *)NULL)
continue;
/* This should catch stabs-in-ecoff. */ /* This should catch stabs-in-ecoff. */
if (fh->crfd <= 1) if (fh->crfd <= 1)
continue; continue;
@ -2412,11 +2421,11 @@ parse_partial_symbols (objfile, section_offsets)
} }
} }
} }
pst->number_of_dependencies = fh->crfd - s_id0; pst->number_of_dependencies = 0;
pst->dependencies = pst->dependencies =
((struct partial_symtab **) ((struct partial_symtab **)
obstack_alloc (&objfile->psymbol_obstack, obstack_alloc (&objfile->psymbol_obstack,
(pst->number_of_dependencies ((fh->crfd - s_id0)
* sizeof (struct partial_symtab *)))); * sizeof (struct partial_symtab *))));
for (s_idx = s_id0; s_idx < fh->crfd; s_idx++) for (s_idx = s_id0; s_idx < fh->crfd; s_idx++)
{ {
@ -2427,107 +2436,25 @@ parse_partial_symbols (objfile, section_offsets)
+ (fh->rfdBase + s_idx) * external_rfd_size), + (fh->rfdBase + s_idx) * external_rfd_size),
&rh); &rh);
if (rh < 0 || rh >= hdr->ifdMax) if (rh < 0 || rh >= hdr->ifdMax)
complain (&bad_file_number_complaint, rh); {
else complain (&bad_file_number_complaint, rh);
pst->dependencies[s_idx - s_id0] = fdr_to_pst[rh].pst; continue;
}
/* Skip self-dependency. */
if (rh == f_idx)
continue;
/* Do not add to dependeny list if psymtab was empty. */
if (fdr_to_pst[rh].pst == (struct partial_symtab *)NULL)
continue;
pst->dependencies[pst->number_of_dependencies++] = fdr_to_pst[rh].pst;
} }
} }
do_cleanups (old_chain); do_cleanups (old_chain);
} }
#if 0
/* Do the initial analisys of the F_IDX-th file descriptor.
Allocates a partial symtab for it, and builds the list
of dependent files by recursion. LEV says at which level
of recursion we are called (to pretty up debug traces) */
static struct partial_symtab *
parse_fdr (f_idx, lev, objfile)
int f_idx;
int lev;
struct objfile *objfile;
{
const bfd_size_type external_rfd_size
= ecoff_backend (cur_bfd)->external_rfd_size;
void (* const swap_rfd_in) PARAMS ((bfd *, PTR, RFDT *))
= ecoff_backend (cur_bfd)->swap_rfd_in;
register FDR *fh;
register struct partial_symtab *pst;
int s_idx, s_id0;
fh = ecoff_data (cur_bfd)->fdr + f_idx;
/* Use this to indicate into which symtab this file was parsed */
if (fh->ioptBase)
return (struct partial_symtab *) fh->ioptBase;
/* Debuggability level */
if (compare_glevel (max_glevel, fh->glevel) < 0)
max_glevel = fh->glevel;
/* Make a new partial_symtab */
pst = new_psymtab (fdr_name (fh), objfile);
if (fh->cpd == 0)
{
pst->textlow = 0;
pst->texthigh = 0;
}
else
{
pst->textlow = fh->adr;
pst->texthigh = fh->cpd; /* To be fixed later */
}
/* Make everything point to everything. */
FDR_IDX (pst) = f_idx;
fdr_to_pst[f_idx].pst = pst;
fh->ioptBase = (int) pst;
/* Analyze its dependencies */
if (fh->crfd <= 1)
return pst;
s_id0 = 0;
if (fh->cpd == 0)
{ /* If there are no functions defined here ... */
/* ...then presumably a .h file: drop reverse depends .h->.c */
for (; s_id0 < fh->crfd; s_id0++)
{
RFDT rh;
(*swap_rfd_in) (cur_bfd,
((char *) ecoff_data (cur_bfd)->external_rfd
+ (fh->rfdBase + s_id0) * external_rfd_size),
&rh);
if (rh == f_idx)
{
s_id0++; /* Skip self-dependency */
break;
}
}
}
pst->number_of_dependencies = fh->crfd - s_id0;
pst->dependencies = ((struct partial_symtab **)
obstack_alloc (&objfile->psymbol_obstack,
(pst->number_of_dependencies
* sizeof (struct partial_symtab *))));
for (s_idx = s_id0; s_idx < fh->crfd; s_idx++)
{
RFDT rh;
(*swap_rfd_in) (cur_bfd,
((char *) ecoff_data (cur_bfd)->external_rfd
+ (fh->rfdBase + s_idx) * external_rfd_size),
&rh);
pst->dependencies[s_idx - s_id0] = parse_fdr (rh, lev + 1, objfile);
}
return pst;
}
#endif
static char * static char *
mips_next_symbol_text () mips_next_symbol_text ()
{ {
@ -2745,6 +2672,10 @@ psymtab_to_symtab_1 (pst, filename)
f_max += fh->csym + fh->cpd; f_max += fh->csym + fh->cpd;
maxlines = 2 * fh->cline; maxlines = 2 * fh->cline;
st = new_symtab (pst->filename, 2 * f_max, maxlines, pst->objfile); st = new_symtab (pst->filename, 2 * f_max, maxlines, pst->objfile);
/* The proper language was already determined when building
the psymtab, use it. */
st->language = PST_PRIVATE (pst)->pst_language;
} }
psymtab_language = st->language; psymtab_language = st->language;
@ -2886,12 +2817,13 @@ psymtab_to_symtab_1 (pst, filename)
Return value says how many aux symbols we ate. */ Return value says how many aux symbols we ate. */
static int static int
cross_ref (ax, tpp, type_code, pname, bigend) cross_ref (ax, tpp, type_code, pname, bigend, sym_name)
union aux_ext *ax; union aux_ext *ax;
struct type **tpp; struct type **tpp;
enum type_code type_code; /* Use to alloc new type if none is found. */ enum type_code type_code; /* Use to alloc new type if none is found. */
char **pname; char **pname;
int bigend; int bigend;
char *sym_name;
{ {
RNDXR rn[1]; RNDXR rn[1];
unsigned int rf; unsigned int rf;
@ -2931,7 +2863,7 @@ cross_ref (ax, tpp, type_code, pname, bigend)
*tpp = (struct type *)NULL; *tpp = (struct type *)NULL;
*pname = "<illegal>"; *pname = "<illegal>";
complain (&bad_rfd_entry_complaint, complain (&bad_rfd_entry_complaint,
fh - ecoff_data (cur_bfd)->fdr, rn->index); sym_name, fh - ecoff_data (cur_bfd)->fdr, rn->index);
return result; return result;
} }
@ -2967,7 +2899,7 @@ cross_ref (ax, tpp, type_code, pname, bigend)
*tpp = (struct type *)NULL; *tpp = (struct type *)NULL;
*pname = "<illegal>"; *pname = "<illegal>";
complain (&bad_rfd_entry_complaint, complain (&bad_rfd_entry_complaint,
fh - ecoff_data (cur_bfd)->fdr, rn->index); sym_name, fh - ecoff_data (cur_bfd)->fdr, rn->index);
return result; return result;
} }
else else

View file

@ -177,7 +177,7 @@ start_psymtab PARAMS ((struct objfile *, struct section_offsets *, char *,
CORE_ADDR, int, struct partial_symbol *, CORE_ADDR, int, struct partial_symbol *,
struct partial_symbol *)); struct partial_symbol *));
extern void extern struct partial_symtab *
end_psymtab PARAMS ((struct partial_symtab *, char **, int, int, CORE_ADDR, end_psymtab PARAMS ((struct partial_symtab *, char **, int, int, CORE_ADDR,
struct partial_symtab **, int)); struct partial_symtab **, int));