Use unique_xmalloc_ptr in fixup_go_packaging
[deliverable/binutils-gdb.git] / gdb / minsyms.h
index 40e69aea87d8d834d44b4f50eb6ce93f70e5c904..98735e75e334a14169cabc84f349049341b2758c 100644 (file)
@@ -1,6 +1,6 @@
 /* Minimal symbol table definitions for GDB.
 
-   Copyright (C) 2011-2018 Free Software Foundation, Inc.
+   Copyright (C) 2011-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -88,7 +88,6 @@ class minimal_symbol_reader
      Arguments are:
 
      NAME - the symbol's name
-     NAME_LEN - the length of the name
      COPY_NAME - if true, the minsym code must make a copy of NAME.  If
      false, then NAME must be NUL-terminated, and must have a lifetime
      that is at least as long as OBJFILE's lifetime.
@@ -97,15 +96,14 @@ class minimal_symbol_reader
      SECTION - the symbol's section
   */
 
-  struct minimal_symbol *record_full (const char *name,
-                                     int name_len,
+  struct minimal_symbol *record_full (gdb::string_view name,
                                      bool copy_name,
                                      CORE_ADDR address,
                                      enum minimal_symbol_type ms_type,
                                      int section);
 
   /* Like record_full, but:
-     - uses strlen to compute NAME_LEN,
+     - computes the length of NAME
      - passes COPY_NAME = true,
      - and passes a default SECTION, depending on the type
 
@@ -115,23 +113,21 @@ class minimal_symbol_reader
               enum minimal_symbol_type ms_type);
 
   /* Like record_full, but:
-     - uses strlen to compute NAME_LEN,
-     - passes COPY_NAME = true.  */
+     - computes the length of NAME
+     - passes COPY_NAME = true.
 
-  struct minimal_symbol *record_with_info (const char *name,
-                                          CORE_ADDR address,
-                                          enum minimal_symbol_type ms_type,
-                                          int section)
+     This variant does not return the new symbol.  */
+
+  void record_with_info (const char *name, CORE_ADDR address,
+                        enum minimal_symbol_type ms_type,
+                        int section)
   {
-    return record_full (name, strlen (name), true, address, ms_type, section);
+    record_full (name, true, address, ms_type, section);
   }
 
  private:
 
-  /* No need for these.  They are intentionally not defined anywhere.  */
-  minimal_symbol_reader &operator=
-    (const minimal_symbol_reader &);
-  minimal_symbol_reader (const minimal_symbol_reader &);
+  DISABLE_COPY_AND_ASSIGN (minimal_symbol_reader);
 
   struct objfile *m_objfile;
 
@@ -150,13 +146,6 @@ class minimal_symbol_reader
   int m_msym_count;
 };
 
-/* Create the terminating entry of OBJFILE's minimal symbol table.
-   If OBJFILE->msymbols is zero, allocate a single entry from
-   OBJFILE->objfile_obstack; otherwise, just initialize
-   OBJFILE->msymbols[OBJFILE->minimal_symbol_count].  */
-
-void terminate_minimal_symbol_table (struct objfile *objfile);
-
 \f
 
 /* Return whether MSYMBOL is a function/method.  If FUNC_ADDRESS_P is
@@ -168,7 +157,8 @@ bool msymbol_is_function (struct objfile *objfile,
                          minimal_symbol *minsym,
                          CORE_ADDR *func_address_p = NULL);
 
-/* Compute a hash code for the string argument.  */
+/* Compute a hash code for the string argument.  Unlike htab_hash_string,
+   this is a case-insensitive hash to support "set case-sensitive off".  */
 
 unsigned int msymbol_hash (const char *);
 
@@ -202,11 +192,6 @@ struct bound_minimal_symbol lookup_minimal_symbol (const char *,
 
 struct bound_minimal_symbol lookup_bound_minimal_symbol (const char *);
 
-/* Find the minimal symbol named NAME, and return both the minsym
-   struct and its objfile.  */
-
-struct bound_minimal_symbol lookup_minimal_symbol_and_objfile (const char *);
-
 /* Look through all the current minimal symbol tables and find the
    first minimal symbol that matches NAME and has text type.  If OBJF
    is non-NULL, limit the search to that objfile.  Returns a bound
@@ -218,17 +203,16 @@ struct bound_minimal_symbol lookup_minimal_symbol_and_objfile (const char *);
 struct bound_minimal_symbol lookup_minimal_symbol_text (const char *,
                                                        struct objfile *);
 
-/* Look through all the current minimal symbol tables and find the
-   first minimal symbol that matches NAME and is a solib trampoline.
-   If OBJF is non-NULL, limit the search to that objfile.  Returns a
-   pointer to the minimal symbol that matches, or NULL if no match is
-   found.
-
-   This function only searches the mangled (linkage) names.  */
+/* Look through the minimal symbols in OBJF (and its separate debug
+   objfiles) for a global (not file-local) minsym whose linkage name
+   is NAME.  This is somewhat similar to lookup_minimal_symbol_text,
+   only data symbols (not text symbols) are considered, and a non-NULL
+   objfile is not accepted.  Returns a bound minimal symbol that
+   matches, or an "empty" bound minimal symbol otherwise.  */
 
-struct bound_minimal_symbol lookup_minimal_symbol_solib_trampoline
-    (const char *,
-     struct objfile *);
+extern struct bound_minimal_symbol lookup_minimal_symbol_linkage
+  (const char *name, struct objfile *objf)
+  ATTRIBUTE_NONNULL (1) ATTRIBUTE_NONNULL (2);
 
 /* Look through all the current minimal symbol tables and find the
    first minimal symbol that matches NAME and PC.  If OBJF is non-NULL,
This page took 0.024694 seconds and 4 git commands to generate.