Consolidate setting of current_layout
[deliverable/binutils-gdb.git] / gdb / psympriv.h
index 9d22f5c9acf5b28989148273201dc8f08e3ab911..c81261a38f6b163b973b028609fc1604fdbd2de4 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "psymtab.h"
 #include "objfiles.h"
+#include "gdbsupport/gdb_string_view.h"
 
 /* A partial_symbol records the name, domain, and address class of
    symbols whose types we have not parsed yet.  For functions, it also
@@ -81,6 +82,12 @@ struct partial_symbol
   ENUM_BITFIELD(address_class) aclass : SYMBOL_ACLASS_BITS;
 };
 
+/* This struct is size-critical (see comment at the to of symtab.h), so this
+   assert makes sure the size doesn't change accidentally.  Be careful when
+   purposely increasing the size.  */
+gdb_static_assert ((sizeof (void *) == 8 && sizeof (partial_symbol) == 40)
+                  || (sizeof (void *) == 4 && sizeof (partial_symbol) == 24));
+
 /* A convenience enum to give names to some constants used when
    searching psymtabs.  This is internal to psymtab and should not be
    used elsewhere.  */
@@ -286,15 +293,32 @@ enum class psymbol_placement
   GLOBAL
 };
 
-/* Add any kind of symbol to a partial_symbol vector.  */
+/* Add a symbol to the partial symbol table of OBJFILE.
+
+   If COPY_NAME is true, make a copy of NAME, otherwise use the passed
+   reference.
+
+   THECLASS is the type of symbol.
+
+   SECTION is the index of the section of OBJFILE in which the symbol is found.
+
+   WHERE determines whether the symbol goes in the list of static or global
+   partial symbols of OBJFILE.
+
+   COREADDR is the address of the symbol.  For partial symbols that don't have
+   an address, zero is passed.
+
+   LANGUAGE is the language from which the symbol originates.  This will
+   influence, amongst other things, how the symbol name is demangled. */
 
-extern void add_psymbol_to_list (const char *, int,
-                                bool, domain_enum,
-                                enum address_class,
-                                short /* section */,
-                                enum psymbol_placement,
-                                CORE_ADDR,
-                                enum language, struct objfile *);
+extern void add_psymbol_to_list (gdb::string_view name,
+                                bool copy_name, domain_enum domain,
+                                enum address_class theclass,
+                                short section,
+                                psymbol_placement where,
+                                CORE_ADDR coreaddr,
+                                enum language language,
+                                struct objfile *objfile);
 
 /* Initialize storage for partial symbols.  If partial symbol storage
    has already been initialized, this does nothing.  TOTAL_SYMBOLS is
This page took 0.031146 seconds and 4 git commands to generate.