summaryrefslogtreecommitdiff
path: root/gprof/sym_ids.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2007-04-19 10:46:56 +0000
committerAlan Modra <amodra@bigpond.net.au>2007-04-19 10:46:56 +0000
commit67c110c80101b397ebae002fa8073512fc35e778 (patch)
tree31d5bb555fb87a07cda99fa10a6295a802744db2 /gprof/sym_ids.c
parent44053f0f8ad4bce9fa32a0ce080a302f09e4bd99 (diff)
downloadbinutils-redhat-67c110c80101b397ebae002fa8073512fc35e778.tar.gz
* corefile.c (core_create_function_syms, core_create_line_syms): Don't
set discard_underscores. * gprof.c (discard_underscores): Delete. * gprof.h (discard_underscores): Delete. * sym_ids.c (match): Use bfd_get_symbol_leading_char to check for leading underscores. * utils.c (print_name_only): Call bfd_demangle rather than cplus_demangle. * Makefile.am: Run "make dep-am". * Makefile.in: Regenerate.
Diffstat (limited to 'gprof/sym_ids.c')
-rw-r--r--gprof/sym_ids.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/gprof/sym_ids.c b/gprof/sym_ids.c
index d41a716b78..5b8f3971bf 100644
--- a/gprof/sym_ids.c
+++ b/gprof/sym_ids.c
@@ -27,6 +27,7 @@
#include "symtab.h"
#include "cg_arcs.h"
#include "sym_ids.h"
+#include "corefile.h"
static struct sym_id
{
@@ -218,12 +219,19 @@ parse_id (struct sym_id *id)
static bfd_boolean
match (Sym *pattern, Sym *sym)
{
- return (pattern->file ? pattern->file == sym->file : TRUE)
- && (pattern->line_num ? pattern->line_num == sym->line_num : TRUE)
- && (pattern->name
- ? strcmp (pattern->name,
- sym->name+(discard_underscores && sym->name[0] == '_')) == 0
- : TRUE);
+ if (pattern->file && pattern->file != sym->file)
+ return FALSE;
+ if (pattern->line_num && pattern->line_num != sym->line_num)
+ return FALSE;
+ if (pattern->name)
+ {
+ const char *sym_name = sym->name;
+ if (*sym_name && bfd_get_symbol_leading_char (core_bfd) == *sym_name)
+ sym_name++;
+ if (strcmp (pattern->name, sym_name) != 0)
+ return FALSE;
+ }
+ return TRUE;
}