Fix build breakage from last commit (window-nat.c:windows_create_inferior)
[deliverable/binutils-gdb.git] / gprof / sym_ids.c
index f75088a30ea855cd2ec164a952e5ed398a33eb44..00a596f05fc239f3e848fd75d3683e0aeeb26ecc 100644 (file)
@@ -1,12 +1,12 @@
 /* sym_ids.c
 
 /* sym_ids.c
 
-   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1999-2017 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 "gprof.h"
 #include "libiberty.h"
 #include "safe-ctype.h"
 #include "libiberty.h"
 #include "safe-ctype.h"
-#include "gprof.h"
 #include "search_list.h"
 #include "source.h"
 #include "symtab.h"
 #include "cg_arcs.h"
 #include "sym_ids.h"
 #include "search_list.h"
 #include "source.h"
 #include "symtab.h"
 #include "cg_arcs.h"
 #include "sym_ids.h"
+#include "corefile.h"
+
+struct match
+  {
+    int prev_index;    /* Index of prev match.  */
+    Sym *prev_match;   /* Previous match.  */
+    Sym *first_match;  /* Chain of all matches.  */
+    Sym sym;
+  };
 
 struct sym_id
   {
 
 struct sym_id
   {
@@ -35,31 +44,25 @@ struct sym_id
     Table_Id which_table;
     bfd_boolean has_right;
 
     Table_Id which_table;
     bfd_boolean has_right;
 
-    struct match
-      {
-       int prev_index;         /* Index of prev match.  */
-       Sym *prev_match;        /* Previous match.  */
-       Sym *first_match;       /* Chain of all matches.  */
-       Sym sym;
-      }
-    left, right;
-  }
- *id_list;
+    struct match left, right;
+  };
+
+static struct sym_id  *id_list;
 
 static void parse_spec
 
 static void parse_spec
-  PARAMS ((char *, Sym *));
+  (char *, Sym *);
 static void parse_id
 static void parse_id
-  PARAMS ((struct sym_id *));
+  (struct sym_id *);
 static bfd_boolean match
 static bfd_boolean match
-  PARAMS ((Sym *, Sym *));
+  (Sym *, Sym *);
 static void extend_match
 static void extend_match
-  PARAMS ((struct match *, Sym *, Sym_Table *, bfd_boolean));
+  (struct match *, Sym *, Sym_Table *, bfd_boolean);
 
 
 Sym_Table syms[NUM_TABLES];
 
 #ifdef DEBUG
 
 
 Sym_Table syms[NUM_TABLES];
 
 #ifdef DEBUG
-const char *table_name[] =
+static const char *table_name[] =
 {
   "INCL_GRAPH", "EXCL_GRAPH",
   "INCL_ARCS", "EXCL_ARCS",
 {
   "INCL_GRAPH", "EXCL_GRAPH",
   "INCL_ARCS", "EXCL_ARCS",
@@ -84,9 +87,7 @@ static Source_File non_existent_file =
 
 
 void
 
 
 void
-sym_id_add (spec, which_table)
-     const char *spec;
-     Table_Id which_table;
+sym_id_add (const char *spec, Table_Id which_table)
 {
   struct sym_id *id;
   int len = strlen (spec);
 {
   struct sym_id *id;
   int len = strlen (spec);
@@ -114,9 +115,7 @@ sym_id_add (spec, which_table)
    FILENAME not containing a dot can be specified by FILENAME.  */
 
 static void
    FILENAME not containing a dot can be specified by FILENAME.  */
 
 static void
-parse_spec (spec, sym)
-     char *spec;
-     Sym *sym;
+parse_spec (char *spec, Sym *sym)
 {
   char *colon;
 
 {
   char *colon;
 
@@ -171,8 +170,7 @@ parse_spec (spec, sym)
    by parse_spec().  */
 
 static void
    by parse_spec().  */
 
 static void
-parse_id (id)
-     struct sym_id *id;
+parse_id (struct sym_id *id)
 {
   char *slash;
 
 {
   char *slash;
 
@@ -221,25 +219,26 @@ parse_id (id)
 /* Return TRUE iff PATTERN matches SYM.  */
 
 static bfd_boolean
 /* Return TRUE iff PATTERN matches SYM.  */
 
 static bfd_boolean
-match (pattern, sym)
-     Sym *pattern;
-     Sym *sym;
+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;
 }
 
 
 static void
 }
 
 
 static void
-extend_match (m, sym, tab, second_pass)
-     struct match *m;
-     Sym *sym;
-     Sym_Table *tab;
-     bfd_boolean second_pass;
+extend_match (struct match *m, Sym *sym, Sym_Table *tab, bfd_boolean second_pass)
 {
   if (m->prev_match != sym - 1)
     {
 {
   if (m->prev_match != sym - 1)
     {
@@ -274,7 +273,7 @@ extend_match (m, sym, tab, second_pass)
    requests---you get what you ask for!  */
 
 void
    requests---you get what you ask for!  */
 
 void
-sym_id_parse ()
+sym_id_parse (void)
 {
   Sym *sym, *left, *right;
   struct sym_id *id;
 {
   Sym *sym, *left, *right;
   struct sym_id *id;
@@ -373,10 +372,7 @@ sym_id_parse ()
    very big (the user has to type them!), so a linear search is probably
    tolerable.  */
 bfd_boolean
    very big (the user has to type them!), so a linear search is probably
    tolerable.  */
 bfd_boolean
-sym_id_arc_is_present (sym_tab, from, to)
-     Sym_Table *sym_tab;
-     Sym *from;
-     Sym *to;
+sym_id_arc_is_present (Sym_Table *sym_tab, Sym *from, Sym *to)
 {
   Sym *sym;
 
 {
   Sym *sym;
 
This page took 0.025612 seconds and 4 git commands to generate.