X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gprof%2Fbasic_blocks.c;h=20dd7c3b19dba132915b814c8976fe613425be2e;hb=ba98da750e0bc7b2b9399945619b0a8ab88cf1cd;hp=57e3c7a33ab3f090abcf0744417abec7c91a1cac;hpb=3e8f6abf1e13bfd39a48b297f2679f5dd5fe6a3a;p=deliverable%2Fbinutils-gdb.git diff --git a/gprof/basic_blocks.c b/gprof/basic_blocks.c index 57e3c7a33a..20dd7c3b19 100644 --- a/gprof/basic_blocks.c +++ b/gprof/basic_blocks.c @@ -2,13 +2,14 @@ of basic-block info to/from gmon.out; computing and formatting of basic-block related statistics. - Copyright 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2007 + Free Software Foundation, Inc. This file is part of GNU Binutils. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,11 +19,11 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ -#include "libiberty.h" #include "gprof.h" +#include "libiberty.h" #include "basic_blocks.h" #include "corefile.h" #include "gmon_io.h" @@ -118,7 +119,7 @@ fskip_string (FILE *fp) void bb_read_rec (FILE *ifp, const char *filename) { - int nblocks, b; + unsigned int nblocks, b; bfd_vma addr, ncalls; Sym *sym; @@ -280,6 +281,8 @@ print_exec_counts () for (i = 0; i < len; ++i) { + sym = sorted_bbs [i]; + if (sym->ncalls > 0 || ! ignore_zeros) { /* FIXME: This only works if bfd_vma is unsigned long. */ @@ -316,7 +319,7 @@ print_exec_counts () static void annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg) { - Source_File *sf = arg; + Source_File *sf = (Source_File *) arg; Sym *b; unsigned int i; static unsigned long last_count; @@ -325,7 +328,7 @@ annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg) b = NULL; if (line_num <= sf->num_lines) - b = sf->line[line_num - 1]; + b = (Sym *) sf->line[line_num - 1]; if (!b) { @@ -485,7 +488,7 @@ print_annotated_source () { if (sf->num_lines > 0) { - sf->line = (void *) xmalloc (sf->num_lines * sizeof (sf->line[0])); + sf->line = (void **) xmalloc (sf->num_lines * sizeof (sf->line[0])); memset (sf->line, 0, sf->num_lines * sizeof (sf->line[0])); } } @@ -499,7 +502,7 @@ print_annotated_source () && !sym_lookup (&syms[EXCL_ANNO], sym->addr)))) { sym->file->ncalls += sym->ncalls; - line_stats = sym->file->line[sym->line_num - 1]; + line_stats = (Sym *) sym->file->line[sym->line_num - 1]; if (!line_stats) { @@ -549,7 +552,7 @@ print_annotated_source () for (i = 0; i < table_len; ++i) { - sym = sf->line[i]; + sym = (Sym *) sf->line[i]; if (!sym || sym->ncalls == 0) break;