Adjust gdb.mi/mi-sym-info.exp filename patterns.
[deliverable/binutils-gdb.git] / gprof / sym_ids.c
index 72da918cdf86ab3c2af58b418eb2ddd15b768cd8..c214f14314dbe49a17b0522b2e7be0ec1dbc3bbf 100644 (file)
@@ -1,12 +1,12 @@
 /* sym_ids.c
 
 /* sym_ids.c
 
-   Copyright 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1999-2020 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,16 +44,10 @@ 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
   (char *, Sym *);
 
 static void parse_spec
   (char *, Sym *);
@@ -59,7 +62,7 @@ static void extend_match
 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",
@@ -218,12 +221,19 @@ parse_id (struct sym_id *id)
 static bfd_boolean
 match (Sym *pattern, Sym *sym)
 {
 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;
 }
 
 
 }
 
 
@@ -263,7 +273,7 @@ extend_match (struct match *m, Sym *sym, Sym_Table *tab, bfd_boolean 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;
This page took 0.025313 seconds and 4 git commands to generate.