gdb: fix building on Darwin 9
[deliverable/binutils-gdb.git] / gprof / basic_blocks.c
index 74f29a0eb197f2802949c4abfc49a7c68f875915..3946cf294930b4abf64e861fd1a83473c0061533 100644 (file)
@@ -2,13 +2,14 @@
    of basic-block info to/from gmon.out; computing and formatting of
    basic-block related statistics.
 
    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
 
    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,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    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.  */
 \f
 \f
-#include "libiberty.h"
 #include "gprof.h"
 #include "gprof.h"
+#include "libiberty.h"
+#include "filenames.h"
 #include "basic_blocks.h"
 #include "corefile.h"
 #include "gmon_io.h"
 #include "basic_blocks.h"
 #include "corefile.h"
 #include "gmon_io.h"
 #include "symtab.h"
 #include "sym_ids.h"
 
 #include "symtab.h"
 #include "sym_ids.h"
 
-static int cmp_bb PARAMS ((const PTR, const PTR));
-static int cmp_ncalls PARAMS ((const PTR, const PTR));
-static void fskip_string PARAMS ((FILE *));
-static void annotate_with_count PARAMS ((char *, unsigned int, int, PTR));
+static int cmp_bb (const PTR, const PTR);
+static int cmp_ncalls (const PTR, const PTR);
+static void fskip_string (FILE *);
+static void annotate_with_count (char *, unsigned int, int, PTR);
 
 /* Default option values:  */
 
 /* Default option values:  */
-boolean bb_annotate_all_lines = false;
+bfd_boolean bb_annotate_all_lines = FALSE;
 unsigned long bb_min_calls = 1;
 int bb_table_length = 10;
 
 unsigned long bb_min_calls = 1;
 int bb_table_length = 10;
 
@@ -52,9 +54,7 @@ static long num_lines_executed;
    number, and address (in that order).  */
 
 static int
    number, and address (in that order).  */
 
 static int
-cmp_bb (lp, rp)
-     const PTR lp;
-     const PTR rp;
+cmp_bb (const PTR lp, const PTR rp)
 {
   int r;
   const Sym *left = *(const Sym **) lp;
 {
   int r;
   const Sym *left = *(const Sym **) lp;
@@ -62,7 +62,7 @@ cmp_bb (lp, rp)
 
   if (left->file && right->file)
     {
 
   if (left->file && right->file)
     {
-      r = strcmp (left->file->name, right->file->name);
+      r = filename_cmp (left->file->name, right->file->name);
 
       if (r)
        return r;
 
       if (r)
        return r;
@@ -83,9 +83,7 @@ cmp_bb (lp, rp)
 /* Helper for sorting.  Order basic blocks in decreasing number of
    calls, ties are broken in increasing order of line numbers.  */
 static int
 /* Helper for sorting.  Order basic blocks in decreasing number of
    calls, ties are broken in increasing order of line numbers.  */
 static int
-cmp_ncalls (lp, rp)
-     const PTR lp;
-     const PTR rp;
+cmp_ncalls (const PTR lp, const PTR rp)
 {
   const Sym *left = *(const Sym **) lp;
   const Sym *right = *(const Sym **) rp;
 {
   const Sym *left = *(const Sym **) lp;
   const Sym *right = *(const Sym **) rp;
@@ -105,8 +103,7 @@ cmp_ncalls (lp, rp)
 
 /* Skip over variable length string.  */
 static void
 
 /* Skip over variable length string.  */
 static void
-fskip_string (fp)
-     FILE *fp;
+fskip_string (FILE *fp)
 {
   int ch;
 
 {
   int ch;
 
@@ -121,11 +118,9 @@ fskip_string (fp)
    of file IFP and is provided for formatting error-messages only.  */
 
 void
    of file IFP and is provided for formatting error-messages only.  */
 
 void
-bb_read_rec (ifp, filename)
-     FILE *ifp;
-     const char *filename;
+bb_read_rec (FILE *ifp, const char *filename)
 {
 {
-  int nblocks, b;
+  unsigned int nblocks, b;
   bfd_vma addr, ncalls;
   Sym *sym;
 
   bfd_vma addr, ncalls;
   Sym *sym;
 
@@ -150,8 +145,8 @@ bb_read_rec (ifp, filename)
             care about anymore.  */
          if ((fread (&ncalls, sizeof (ncalls), 1, ifp) != 1)
              || (fread (&addr, sizeof (addr), 1, ifp) != 1)
             care about anymore.  */
          if ((fread (&ncalls, sizeof (ncalls), 1, ifp) != 1)
              || (fread (&addr, sizeof (addr), 1, ifp) != 1)
-             || (fskip_string (ifp), false)
-             || (fskip_string (ifp), false)
+             || (fskip_string (ifp), FALSE)
+             || (fskip_string (ifp), FALSE)
              || (fread (&line_num, sizeof (line_num), 1, ifp) != 1))
            {
              perror (filename);
              || (fread (&line_num, sizeof (line_num), 1, ifp) != 1))
            {
              perror (filename);
@@ -193,11 +188,11 @@ bb_read_rec (ifp, filename)
        }
       else
        {
        }
       else
        {
-         static boolean user_warned = false;
+         static bfd_boolean user_warned = FALSE;
 
          if (!user_warned)
            {
 
          if (!user_warned)
            {
-             user_warned = true;
+             user_warned = TRUE;
              fprintf (stderr,
   _("%s: warning: ignoring basic-block exec counts (use -l or --line)\n"),
                       whoami);
              fprintf (stderr,
   _("%s: warning: ignoring basic-block exec counts (use -l or --line)\n"),
                       whoami);
@@ -211,9 +206,7 @@ bb_read_rec (ifp, filename)
    is the name of OFP and is provided for producing error-messages
    only.  */
 void
    is the name of OFP and is provided for producing error-messages
    only.  */
 void
-bb_write_blocks (ofp, filename)
-     FILE *ofp;
-     const char *filename;
+bb_write_blocks (FILE *ofp, const char *filename)
 {
   unsigned int nblocks = 0;
   Sym *sym;
 {
   unsigned int nblocks = 0;
   Sym *sym;
@@ -262,7 +255,7 @@ print_exec_counts ()
   unsigned int i, j, len;
 
   if (first_output)
   unsigned int i, j, len;
 
   if (first_output)
-    first_output = false;
+    first_output = FALSE;
   else
     printf ("\f\n");
 
   else
     printf ("\f\n");
 
@@ -289,6 +282,8 @@ print_exec_counts ()
 
   for (i = 0; i < len; ++i)
     {
 
   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.  */
       if (sym->ncalls > 0 || ! ignore_zeros)
        {
          /* FIXME: This only works if bfd_vma is unsigned long.  */
@@ -323,13 +318,9 @@ print_exec_counts ()
    that starts the basic-block.  */
 
 static void
    that starts the basic-block.  */
 
 static void
-annotate_with_count (buf, width, line_num, arg)
-     char *buf;
-     unsigned int width;
-     int line_num;
-     PTR arg;
+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;
   Sym *b;
   unsigned int i;
   static unsigned long last_count;
@@ -338,7 +329,7 @@ annotate_with_count (buf, width, line_num, arg)
   b = NULL;
 
   if (line_num <= sf->num_lines)
   b = NULL;
 
   if (line_num <= sf->num_lines)
-    b = sf->line[line_num - 1];
+    b = (Sym *) sf->line[line_num - 1];
 
   if (!b)
     {
 
   if (!b)
     {
@@ -498,7 +489,7 @@ print_annotated_source ()
     {
       if (sf->num_lines > 0)
        {
     {
       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]));
        }
     }
          memset (sf->line, 0, sf->num_lines * sizeof (sf->line[0]));
        }
     }
@@ -512,7 +503,7 @@ print_annotated_source ()
                  && !sym_lookup (&syms[EXCL_ANNO], sym->addr))))
        {
          sym->file->ncalls += sym->ncalls;
                  && !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)
            {
 
          if (!line_stats)
            {
@@ -562,7 +553,7 @@ print_annotated_source ()
 
          for (i = 0; i < table_len; ++i)
            {
 
          for (i = 0; i < table_len; ++i)
            {
-             sym = sf->line[i];
+             sym = (Sym *) sf->line[i];
 
              if (!sym || sym->ncalls == 0)
                  break;
 
              if (!sym || sym->ncalls == 0)
                  break;
This page took 0.026161 seconds and 4 git commands to generate.