mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-04-24 14:53:34 +08:00
* corefile.c (core_sym_class): Allow for ".constprop.N" cloned
functions.
This commit is contained in:
parent
60aa667ec4
commit
d165016dd7
@ -1,3 +1,8 @@
|
||||
2012-09-20 Joe Seymour <jseymour@codesourcery.com>
|
||||
|
||||
* corefile.c (core_sym_class): Allow for ".constprop.N" cloned
|
||||
functions.
|
||||
|
||||
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
|
||||
|
||||
* configure: Regenerate.
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* corefile.c
|
||||
|
||||
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009,
|
||||
2010, 2011 Free Software Foundation, Inc.
|
||||
2010, 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Binutils.
|
||||
|
||||
@ -68,7 +68,7 @@ parse_error (const char *filename)
|
||||
static int
|
||||
cmp_symbol_map (const void * l, const void * r)
|
||||
{
|
||||
return strcmp (((struct function_map *) l)->function_name,
|
||||
return strcmp (((struct function_map *) l)->function_name,
|
||||
((struct function_map *) r)->function_name);
|
||||
}
|
||||
|
||||
@ -394,13 +394,19 @@ core_sym_class (asymbol *sym)
|
||||
Allow for multiple iterations of both - apparently GCC can clone
|
||||
clones and subprograms. */
|
||||
int digit_seen = 0;
|
||||
#define CLONE_NAME ".clone."
|
||||
#define CLONE_NAME_LEN strlen (CLONE_NAME)
|
||||
|
||||
#define CLONE_NAME ".clone."
|
||||
#define CLONE_NAME_LEN strlen (CLONE_NAME)
|
||||
#define CONSTPROP_NAME ".constprop."
|
||||
#define CONSTPROP_NAME_LEN strlen (CONSTPROP_NAME)
|
||||
|
||||
if (strlen (name) > CLONE_NAME_LEN
|
||||
&& strncmp (name, CLONE_NAME, CLONE_NAME_LEN) == 0)
|
||||
name += CLONE_NAME_LEN - 1;
|
||||
|
||||
else if (strlen (name) > CONSTPROP_NAME_LEN
|
||||
&& strncmp (name, CONSTPROP_NAME, CONSTPROP_NAME_LEN) == 0)
|
||||
name += CONSTPROP_NAME_LEN - 1;
|
||||
|
||||
for (name++; *name; name++)
|
||||
if (digit_seen && *name == '.')
|
||||
break;
|
||||
@ -470,7 +476,7 @@ get_src_info (bfd_vma addr, const char **filename, const char **name, int *line_
|
||||
|
||||
/* Return number of symbols in a symbol-table file. */
|
||||
|
||||
static int
|
||||
static int
|
||||
num_of_syms_in (FILE * f)
|
||||
{
|
||||
const int BUFSIZE = 1024;
|
||||
@ -479,7 +485,7 @@ num_of_syms_in (FILE * f)
|
||||
char type;
|
||||
char * name = (char *) xmalloc (BUFSIZE);
|
||||
int num = 0;
|
||||
|
||||
|
||||
while (!feof (f) && fgets (buf, BUFSIZE - 1, f))
|
||||
{
|
||||
if (sscanf (buf, "%s %c %s", address, &type, name) == 3)
|
||||
|
Loading…
x
Reference in New Issue
Block a user