X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fpsympriv.h;h=e7630050e1803573ca22d4ca0c53bc9be8c30999;hb=3804da7e07a13c14210d79de55ebfe2318421164;hp=9d22f5c9acf5b28989148273201dc8f08e3ab911;hpb=67547d896b0593b0fa62e23ac68c483a7e8566e2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/psympriv.h b/gdb/psympriv.h index 9d22f5c9ac..e7630050e1 100644 --- a/gdb/psympriv.h +++ b/gdb/psympriv.h @@ -1,6 +1,6 @@ /* Private partial symbol table definitions. - Copyright (C) 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -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 @@ -54,8 +55,7 @@ struct partial_symbol the offsets provided in OBJFILE. */ CORE_ADDR address (const struct objfile *objfile) const { - return (ginfo.value.address - + ANOFFSET (objfile->section_offsets, ginfo.section)); + return ginfo.value.address + objfile->section_offsets[ginfo.section]; } /* Set the address of this partial symbol. The address must be @@ -119,15 +119,13 @@ struct partial_symtab /* Return the relocated low text address of this partial_symtab. */ CORE_ADDR text_low (struct objfile *objfile) const { - return m_text_low + ANOFFSET (objfile->section_offsets, - SECT_OFF_TEXT (objfile)); + return m_text_low + objfile->section_offsets[SECT_OFF_TEXT (objfile)]; } /* Return the relocated high text address of this partial_symtab. */ CORE_ADDR text_high (struct objfile *objfile) const { - return m_text_high + ANOFFSET (objfile->section_offsets, - SECT_OFF_TEXT (objfile)); + return m_text_high + objfile->section_offsets[SECT_OFF_TEXT (objfile)]; } /* Set the low text address of this partial_symtab. */ @@ -286,15 +284,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. -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 *); + 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 (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