mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 12:03:41 +08:00
* minsyms.c (install_minimal_symbols): Move dropping leading
char from linkage name from here... (prim_record_minimal_symbol_and_info): ...to here. Simplify test for "__gnu_compiled*" symbols.
This commit is contained in:
parent
e802b91571
commit
66337bb10d
@ -1,3 +1,10 @@
|
||||
2004-03-29 Corinna Vinschen <vinschen@redhat.com>
|
||||
|
||||
* minsyms.c (install_minimal_symbols): Move dropping leading
|
||||
char from linkage name from here...
|
||||
(prim_record_minimal_symbol_and_info): ...to here. Simplify
|
||||
test for "__gnu_compiled*" symbols.
|
||||
|
||||
2004-03-28 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* rs6000-tdep.c (skip_prologue): Recognize moves from argument
|
||||
|
@ -580,26 +580,23 @@ prim_record_minimal_symbol_and_info (const char *name, CORE_ADDR address,
|
||||
struct msym_bunch *new;
|
||||
struct minimal_symbol *msymbol;
|
||||
|
||||
if (ms_type == mst_file_text)
|
||||
{
|
||||
/* Don't put gcc_compiled, __gnu_compiled_cplus, and friends into
|
||||
the minimal symbols, because if there is also another symbol
|
||||
at the same address (e.g. the first function of the file),
|
||||
lookup_minimal_symbol_by_pc would have no way of getting the
|
||||
right one. */
|
||||
if (name[0] == 'g'
|
||||
&& (strcmp (name, GCC_COMPILED_FLAG_SYMBOL) == 0
|
||||
|| strcmp (name, GCC2_COMPILED_FLAG_SYMBOL) == 0))
|
||||
return (NULL);
|
||||
/* Don't put gcc_compiled, __gnu_compiled_cplus, and friends into
|
||||
the minimal symbols, because if there is also another symbol
|
||||
at the same address (e.g. the first function of the file),
|
||||
lookup_minimal_symbol_by_pc would have no way of getting the
|
||||
right one. */
|
||||
if (ms_type == mst_file_text && name[0] == 'g'
|
||||
&& (strcmp (name, GCC_COMPILED_FLAG_SYMBOL) == 0
|
||||
|| strcmp (name, GCC2_COMPILED_FLAG_SYMBOL) == 0))
|
||||
return (NULL);
|
||||
|
||||
{
|
||||
const char *tempstring = name;
|
||||
if (tempstring[0] == get_symbol_leading_char (objfile->obfd))
|
||||
++tempstring;
|
||||
if (strncmp (tempstring, "__gnu_compiled", 14) == 0)
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
/* It's safe to strip the leading char here once, since the name
|
||||
is also stored stripped in the minimal symbol table. */
|
||||
if (name[0] == get_symbol_leading_char (objfile->obfd))
|
||||
++name;
|
||||
|
||||
if (ms_type == mst_file_text && strncmp (name, "__gnu_compiled", 14) == 0)
|
||||
return (NULL);
|
||||
|
||||
if (msym_bunch_index == BUNCH_SIZE)
|
||||
{
|
||||
@ -831,7 +828,6 @@ install_minimal_symbols (struct objfile *objfile)
|
||||
struct msym_bunch *bunch;
|
||||
struct minimal_symbol *msymbols;
|
||||
int alloc_count;
|
||||
char leading_char;
|
||||
|
||||
if (msym_count > 0)
|
||||
{
|
||||
@ -859,18 +855,11 @@ install_minimal_symbols (struct objfile *objfile)
|
||||
each bunch is full. */
|
||||
|
||||
mcount = objfile->minimal_symbol_count;
|
||||
leading_char = get_symbol_leading_char (objfile->obfd);
|
||||
|
||||
for (bunch = msym_bunch; bunch != NULL; bunch = bunch->next)
|
||||
{
|
||||
for (bindex = 0; bindex < msym_bunch_index; bindex++, mcount++)
|
||||
{
|
||||
msymbols[mcount] = bunch->contents[bindex];
|
||||
if (SYMBOL_LINKAGE_NAME (&msymbols[mcount])[0] == leading_char)
|
||||
{
|
||||
SYMBOL_LINKAGE_NAME (&msymbols[mcount])++;
|
||||
}
|
||||
}
|
||||
msymbols[mcount] = bunch->contents[bindex];
|
||||
msym_bunch_index = BUNCH_SIZE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user