From 02f2d833d849131cc63318139ea78ccb6bbaa9f2 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sun, 6 Feb 2011 23:38:38 +0000 Subject: [PATCH] PR gprof/12468 * corefile.c (core_create_function_syms): Set is_func for targets that have no BSF_FUNCTION syms. --- gprof/ChangeLog | 6 ++++++ gprof/corefile.c | 19 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 73427a60964..fbf8b90d791 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,9 @@ +2011-02-07 Alan Modra + + PR gprof/12468 + * corefile.c (core_create_function_syms): Set is_func for targets + that have no BSF_FUNCTION syms. + 2011-01-10 Nick Clifton * po/da.po: Updated Danish translation. diff --git a/gprof/corefile.c b/gprof/corefile.c index 6b10d177488..fd4644bfbd8 100644 --- a/gprof/corefile.c +++ b/gprof/corefile.c @@ -1,7 +1,7 @@ /* corefile.c Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, - 2010 Free Software Foundation, Inc. + 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -573,6 +573,20 @@ core_create_function_syms (void) int cxxclass; long i; struct function_map * found; + int core_has_func_syms = 0; + + switch (core_bfd->xvec->flavour) + { + default: + break; + case bfd_target_coff_flavour: + case bfd_target_ecoff_flavour: + case bfd_target_xcoff_flavour: + case bfd_target_elf_flavour: + case bfd_target_nlm_flavour: + case bfd_target_som_flavour: + core_has_func_syms = 1; + } /* Pass 1 - determine upper bound on number of function names. */ symtab.len = 0; @@ -678,7 +692,8 @@ core_create_function_syms (void) } } - symtab.limit->is_func = (core_syms[i]->flags & BSF_FUNCTION) != 0; + symtab.limit->is_func = (!core_has_func_syms + || (core_syms[i]->flags & BSF_FUNCTION) != 0); symtab.limit->is_bb_head = TRUE; if (cxxclass == 't') -- 2.30.2