Some constification in psymtab

This patch changes some spots in psymtab.[ch] to use 'const'.  This is
just preparation for a subsequent patch.  Note that psymbols are
conceptually const, and since they were changed to be
objfile-indepdendent, they are truly never modified -- which is what
makes this patch reasonably short.
This commit is contained in:
Tom Tromey 2024-03-20 13:42:36 -06:00
parent c12221171b
commit 56fefe83f7
2 changed files with 30 additions and 33 deletions

View File

@ -37,18 +37,15 @@
#include <set> #include <set>
#include "gdbsupport/buildargv.h" #include "gdbsupport/buildargv.h"
static struct partial_symbol *lookup_partial_symbol (struct objfile *, static const struct partial_symbol *lookup_partial_symbol
struct partial_symtab *, (struct objfile *, struct partial_symtab *, const lookup_name_info &,
const lookup_name_info &, int, domain_search_flags);
int,
domain_search_flags);
static const char *psymtab_to_fullname (struct partial_symtab *ps); static const char *psymtab_to_fullname (struct partial_symtab *ps);
static struct partial_symbol *find_pc_sect_psymbol (struct objfile *, static const struct partial_symbol *find_pc_sect_psymbol
struct partial_symtab *, (struct objfile *, struct partial_symtab *, CORE_ADDR,
CORE_ADDR, struct obj_section *);
struct obj_section *);
static struct compunit_symtab *psymtab_to_symtab (struct objfile *objfile, static struct compunit_symtab *psymtab_to_symtab (struct objfile *objfile,
struct partial_symtab *pst); struct partial_symtab *pst);
@ -117,7 +114,7 @@ find_pc_sect_psymtab_closer (struct objfile *objfile,
{ {
if (pc >= tpst->text_low (objfile) && pc < tpst->text_high (objfile)) if (pc >= tpst->text_low (objfile) && pc < tpst->text_high (objfile))
{ {
struct partial_symbol *p; const struct partial_symbol *p;
CORE_ADDR this_addr; CORE_ADDR this_addr;
/* NOTE: This assumes that every psymbol has a /* NOTE: This assumes that every psymbol has a
@ -212,12 +209,12 @@ psymbol_functions::find_pc_sect_compunit_symtab
/* Find which partial symbol within a psymtab matches PC and SECTION. /* Find which partial symbol within a psymtab matches PC and SECTION.
Return NULL if none. */ Return NULL if none. */
static struct partial_symbol * static const struct partial_symbol *
find_pc_sect_psymbol (struct objfile *objfile, find_pc_sect_psymbol (struct objfile *objfile,
struct partial_symtab *psymtab, CORE_ADDR pc, struct partial_symtab *psymtab, CORE_ADDR pc,
struct obj_section *section) struct obj_section *section)
{ {
struct partial_symbol *best = NULL; const struct partial_symbol *best = NULL;
CORE_ADDR best_pc; CORE_ADDR best_pc;
const CORE_ADDR textlow = psymtab->text_low (objfile); const CORE_ADDR textlow = psymtab->text_low (objfile);
@ -229,7 +226,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
/* Search the global symbols as well as the static symbols, so that /* Search the global symbols as well as the static symbols, so that
find_pc_partial_function doesn't use a minimal symbol and thus find_pc_partial_function doesn't use a minimal symbol and thus
cache a bad endaddr. */ cache a bad endaddr. */
for (partial_symbol *p : psymtab->global_psymbols) for (const partial_symbol *p : psymtab->global_psymbols)
{ {
if (p->domain == VAR_DOMAIN if (p->domain == VAR_DOMAIN
&& p->aclass == LOC_BLOCK && p->aclass == LOC_BLOCK
@ -249,7 +246,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
} }
} }
for (partial_symbol *p : psymtab->static_psymbols) for (const partial_symbol *p : psymtab->static_psymbols)
{ {
if (p->domain == VAR_DOMAIN if (p->domain == VAR_DOMAIN
&& p->aclass == LOC_BLOCK && p->aclass == LOC_BLOCK
@ -289,7 +286,7 @@ psymbol_functions::lookup_global_symbol_language (struct objfile *objfile,
for (partial_symtab *ps : partial_symbols (objfile)) for (partial_symtab *ps : partial_symbols (objfile))
{ {
struct partial_symbol *psym; const struct partial_symbol *psym;
if (ps->readin_p (objfile)) if (ps->readin_p (objfile))
continue; continue;
@ -307,7 +304,7 @@ psymbol_functions::lookup_global_symbol_language (struct objfile *objfile,
/* Returns true if PSYM matches LOOKUP_NAME. */ /* Returns true if PSYM matches LOOKUP_NAME. */
static bool static bool
psymbol_name_matches (partial_symbol *psym, psymbol_name_matches (const partial_symbol *psym,
const lookup_name_info &lookup_name) const lookup_name_info &lookup_name)
{ {
const language_defn *lang = language_def (psym->ginfo.language ()); const language_defn *lang = language_def (psym->ginfo.language ());
@ -320,14 +317,14 @@ psymbol_name_matches (partial_symbol *psym,
LOOKUP_NAME. Check the global symbols if GLOBAL, the static LOOKUP_NAME. Check the global symbols if GLOBAL, the static
symbols if not. */ symbols if not. */
static struct partial_symbol * static const struct partial_symbol *
lookup_partial_symbol (struct objfile *objfile, lookup_partial_symbol (struct objfile *objfile,
struct partial_symtab *pst, struct partial_symtab *pst,
const lookup_name_info &lookup_name, const lookup_name_info &lookup_name,
int global, domain_search_flags domain) int global, domain_search_flags domain)
{ {
struct partial_symbol **start, **psym; const struct partial_symbol **start, **psym;
struct partial_symbol **top, **real_top, **bottom, **center; const struct partial_symbol **top, **real_top, **bottom, **center;
int length = (global int length = (global
? pst->global_psymbols.size () ? pst->global_psymbols.size ()
: pst->static_psymbols.size ()); : pst->static_psymbols.size ());
@ -497,11 +494,11 @@ psymbol_functions::forget_cached_source_info (struct objfile *objfile)
static void static void
print_partial_symbols (struct gdbarch *gdbarch, struct objfile *objfile, print_partial_symbols (struct gdbarch *gdbarch, struct objfile *objfile,
const std::vector<partial_symbol *> &symbols, const std::vector<const partial_symbol *> &symbols,
const char *what, struct ui_file *outfile) const char *what, struct ui_file *outfile)
{ {
gdb_printf (outfile, " %s partial symbols:\n", what); gdb_printf (outfile, " %s partial symbols:\n", what);
for (partial_symbol *p : symbols) for (const partial_symbol *p : symbols)
{ {
QUIT; QUIT;
gdb_printf (outfile, " `%s'", p->ginfo.linkage_name ()); gdb_printf (outfile, " `%s'", p->ginfo.linkage_name ());
@ -830,15 +827,15 @@ recursively_search_psymtabs
} }
} }
partial_symbol **gbound = (ps->global_psymbols.data () const partial_symbol **gbound = (ps->global_psymbols.data ()
+ ps->global_psymbols.size ()); + ps->global_psymbols.size ());
partial_symbol **sbound = (ps->static_psymbols.data () const partial_symbol **sbound = (ps->static_psymbols.data ()
+ ps->static_psymbols.size ()); + ps->static_psymbols.size ());
partial_symbol **bound = gbound; const partial_symbol **bound = gbound;
/* Go through all of the symbols stored in a partial /* Go through all of the symbols stored in a partial
symtab in one loop. */ symtab in one loop. */
partial_symbol **psym = ps->global_psymbols.data (); const partial_symbol **psym = ps->global_psymbols.data ();
if ((search_flags & SEARCH_GLOBAL_BLOCK) == 0) if ((search_flags & SEARCH_GLOBAL_BLOCK) == 0)
{ {
@ -1006,7 +1003,7 @@ partial_symtab::end ()
/* Sort the global list; don't sort the static list. */ /* Sort the global list; don't sort the static list. */
std::sort (global_psymbols.begin (), std::sort (global_psymbols.begin (),
global_psymbols.end (), global_psymbols.end (),
[] (partial_symbol *s1, partial_symbol *s2) [] (const partial_symbol *s1, const partial_symbol *s2)
{ {
return strcmp_iw_ordered (s1->ginfo.search_name (), return strcmp_iw_ordered (s1->ginfo.search_name (),
s2->ginfo.search_name ()) < 0; s2->ginfo.search_name ()) < 0;
@ -1075,7 +1072,7 @@ partial_symtab::add_psymbol (const partial_symbol &psymbol,
return; return;
/* Save pointer to partial symbol in psymtab, growing symtab if needed. */ /* Save pointer to partial symbol in psymtab, growing symtab if needed. */
std::vector<partial_symbol *> &list std::vector<const partial_symbol *> &list
= (where == psymbol_placement::STATIC = (where == psymbol_placement::STATIC
? static_psymbols ? static_psymbols
: global_psymbols); : global_psymbols);
@ -1496,7 +1493,7 @@ maintenance_check_psymtabs (const char *ignore, int from_tty)
continue; continue;
bv = cust->blockvector (); bv = cust->blockvector ();
b = bv->static_block (); b = bv->static_block ();
for (partial_symbol *psym : ps->static_psymbols) for (const partial_symbol *psym : ps->static_psymbols)
{ {
/* Skip symbols for inlined functions without address. These may /* Skip symbols for inlined functions without address. These may
or may not have a match in the full symtab. */ or may not have a match in the full symtab. */
@ -1518,7 +1515,7 @@ maintenance_check_psymtabs (const char *ignore, int from_tty)
} }
} }
b = bv->global_block (); b = bv->global_block ();
for (partial_symbol *psym : ps->global_psymbols) for (const partial_symbol *psym : ps->global_psymbols)
{ {
lookup_name_info lookup_name lookup_name_info lookup_name
(psym->ginfo.search_name (), symbol_name_match_type::SEARCH_NAME); (psym->ginfo.search_name (), symbol_name_match_type::SEARCH_NAME);

View File

@ -444,7 +444,7 @@ struct partial_symtab
improve access. Binary search will be the usual method of improve access. Binary search will be the usual method of
finding a symbol within it. */ finding a symbol within it. */
std::vector<partial_symbol *> global_psymbols; std::vector<const partial_symbol *> global_psymbols;
/* Static symbol list. This list will *not* be sorted after readin; /* Static symbol list. This list will *not* be sorted after readin;
to find a symbol in it, exhaustive search must be used. This is to find a symbol in it, exhaustive search must be used. This is
@ -453,7 +453,7 @@ struct partial_symtab
to take a *lot* of time; check) or an error (and we don't care to take a *lot* of time; check) or an error (and we don't care
how long errors take). */ how long errors take). */
std::vector<partial_symbol *> static_psymbols; std::vector<const partial_symbol *> static_psymbols;
/* True if the name of this partial symtab is not a source file name. */ /* True if the name of this partial symtab is not a source file name. */