Fix dwarf2read.c related crash in which section index was not being
initialized properly.
This commit is contained in:
parent
6227bc851d
commit
bbeae04739
@ -1,3 +1,10 @@
|
||||
2000-12-04 Kevin Buettner <kevinb@redhat.com>
|
||||
|
||||
* elfread.c (record_minimal_symbol_and_info): Don't guess
|
||||
at the section index; instead just always use the bfd index.
|
||||
(elf_symtab_read): Handle weak symbols appearing in data
|
||||
sections.
|
||||
|
||||
Mon Dec 4 14:36:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbarch.sh (STAB_REG_TO_REGNUM, ECOFF_REG_TO_REGNUM,
|
||||
|
@ -171,32 +171,13 @@ record_minimal_symbol_and_info (char *name, CORE_ADDR address,
|
||||
enum minimal_symbol_type ms_type, char *info, /* FIXME, is this really char *? */
|
||||
asection *bfd_section, struct objfile *objfile)
|
||||
{
|
||||
int section;
|
||||
|
||||
/* Guess the section from the type. This is likely to be wrong in
|
||||
some cases. */
|
||||
switch (ms_type)
|
||||
{
|
||||
case mst_text:
|
||||
case mst_file_text:
|
||||
section = bfd_section->index;
|
||||
#ifdef SMASH_TEXT_ADDRESS
|
||||
if (ms_type == mst_text || ms_type == mst_file_text)
|
||||
SMASH_TEXT_ADDRESS (address);
|
||||
#endif
|
||||
break;
|
||||
case mst_data:
|
||||
case mst_file_data:
|
||||
case mst_bss:
|
||||
case mst_file_bss:
|
||||
section = bfd_section->index;
|
||||
break;
|
||||
default:
|
||||
section = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
return prim_record_minimal_symbol_and_info
|
||||
(name, address, ms_type, info, section, bfd_section, objfile);
|
||||
(name, address, ms_type, info, bfd_section->index, bfd_section, objfile);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -423,7 +404,7 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
|
||||
}
|
||||
else if (sym->section->flags & SEC_ALLOC)
|
||||
{
|
||||
if (sym->flags & BSF_GLOBAL)
|
||||
if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
|
||||
{
|
||||
if (sym->section->flags & SEC_LOAD)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user