aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@polymtl.ca>2022-04-06 10:42:03 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2022-04-07 13:04:53 -0400
commit44281e6c08cae11d4e116d87ea34ad391d58ae91 (patch)
tree7d79dd1cb4870a6d73026985325059b01cde89c2
parente4730328287f755eb313c3762d83d389462cde15 (diff)
downloadgdb-44281e6c08cae11d4e116d87ea34ad391d58ae91.zip
gdb-44281e6c08cae11d4e116d87ea34ad391d58ae91.tar.gz
gdb-44281e6c08cae11d4e116d87ea34ad391d58ae91.tar.bz2
gdb: remove symtab::blockvector
symtab::blockvector is a wrapper around compunit_symtab::blockvector. It is a bit misleadnig, as it gives the impression that a symtab has a blockvector. Remove it, change all users to fetch the blockvector through the compunit instead. Change-Id: Ibd062cd7926112a60d52899dff9224591cbdeebf
-rw-r--r--gdb/ada-exp.y3
-rw-r--r--gdb/ada-lang.c4
-rw-r--r--gdb/c-exp.y5
-rw-r--r--gdb/coffread.c2
-rw-r--r--gdb/compile/compile-object-load.c2
-rw-r--r--gdb/compile/compile.c2
-rw-r--r--gdb/guile/scm-symtab.c4
-rw-r--r--gdb/linespec.c10
-rw-r--r--gdb/mdebugread.c16
-rw-r--r--gdb/p-exp.y5
-rw-r--r--gdb/parse.c2
-rw-r--r--gdb/python/py-symtab.c4
-rw-r--r--gdb/symmisc.c2
-rw-r--r--gdb/symtab.h8
14 files changed, 33 insertions, 36 deletions
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index 5099e40..a2755d7 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -1369,7 +1369,8 @@ block_lookup (const struct block *context, const char *raw_name)
symtab = NULL;
if (symtab != NULL)
- result = BLOCKVECTOR_BLOCK (symtab->blockvector (), STATIC_BLOCK);
+ result = BLOCKVECTOR_BLOCK (symtab->compunit ()->blockvector (),
+ STATIC_BLOCK);
else if (syms.empty () || syms[0].symbol->aclass () != LOC_BLOCK)
{
if (context == NULL)
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index f80ec5b..3a1624e 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -4709,9 +4709,9 @@ cache_symbol (const char *name, domain_enum domain, struct symbol *sym,
the symbol is local or not, we check the block where we found it
against the global and static blocks of its associated symtab. */
if (sym
- && BLOCKVECTOR_BLOCK (symbol_symtab (sym)->blockvector (),
+ && BLOCKVECTOR_BLOCK (symbol_symtab (sym)->compunit ()->blockvector (),
GLOBAL_BLOCK) != block
- && BLOCKVECTOR_BLOCK (symbol_symtab (sym)->blockvector (),
+ && BLOCKVECTOR_BLOCK (symbol_symtab (sym)->compunit ()->blockvector (),
STATIC_BLOCK) != block)
return;
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index de29d2f..4ed661e 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -3109,8 +3109,9 @@ classify_name (struct parser_state *par_state, const struct block *block,
symtab = lookup_symtab (copy.c_str ());
if (symtab)
{
- yylval.bval = BLOCKVECTOR_BLOCK (symtab->blockvector (),
- STATIC_BLOCK);
+ yylval.bval
+ = BLOCKVECTOR_BLOCK (symtab->compunit ()->blockvector (),
+ STATIC_BLOCK);
return FILENAME;
}
}
diff --git a/gdb/coffread.c b/gdb/coffread.c
index 1de2a79..253ba9c 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -1483,7 +1483,7 @@ patch_opaque_types (struct symtab *s)
struct symbol *real_sym;
/* Go through the per-file symbols only. */
- b = BLOCKVECTOR_BLOCK (s->blockvector (), STATIC_BLOCK);
+ b = BLOCKVECTOR_BLOCK (s->compunit ()->blockvector (), STATIC_BLOCK);
ALL_BLOCK_SYMBOLS (b, iter, real_sym)
{
/* Find completed typedefs to use to fix opaque ones.
diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c
index b62a841..7364a4a 100644
--- a/gdb/compile/compile-object-load.c
+++ b/gdb/compile/compile-object-load.c
@@ -421,7 +421,7 @@ get_out_value_type (struct symbol *func_sym, struct objfile *objfile,
lookup_name_info func_matcher (GCC_FE_WRAPPER_FUNCTION,
symbol_name_match_type::SEARCH_NAME);
- bv = func_sym->owner.symtab->blockvector ();
+ bv = func_sym->owner.symtab->compunit ()->blockvector ();
nblocks = BLOCKVECTOR_NBLOCKS (bv);
gdb_ptr_type_sym = NULL;
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
index 7983d1d..2a1f0f1 100644
--- a/gdb/compile/compile.c
+++ b/gdb/compile/compile.c
@@ -484,7 +484,7 @@ get_expr_block_and_pc (CORE_ADDR *pc)
struct symtab_and_line cursal = get_current_source_symtab_and_line ();
if (cursal.symtab)
- block = BLOCKVECTOR_BLOCK (cursal.symtab->blockvector (),
+ block = BLOCKVECTOR_BLOCK (cursal.symtab->compunit ()->blockvector (),
STATIC_BLOCK);
if (block != NULL)
*pc = BLOCK_ENTRY_PC (block);
diff --git a/gdb/guile/scm-symtab.c b/gdb/guile/scm-symtab.c
index d1a5056..386ccf5 100644
--- a/gdb/guile/scm-symtab.c
+++ b/gdb/guile/scm-symtab.c
@@ -363,7 +363,7 @@ gdbscm_symtab_global_block (SCM self)
const struct blockvector *blockvector;
const struct block *block;
- blockvector = symtab->blockvector ();
+ blockvector = symtab->compunit ()->blockvector ();
block = BLOCKVECTOR_BLOCK (blockvector, GLOBAL_BLOCK);
return bkscm_scm_from_block (block, symtab->objfile ());
@@ -381,7 +381,7 @@ gdbscm_symtab_static_block (SCM self)
const struct blockvector *blockvector;
const struct block *block;
- blockvector = symtab->blockvector ();
+ blockvector = symtab->compunit ()->blockvector ();
block = BLOCKVECTOR_BLOCK (blockvector, STATIC_BLOCK);
return bkscm_scm_from_block (block, symtab->objfile ());
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 4d41f74..5a6b620 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -1188,12 +1188,11 @@ iterate_over_all_matching_symtabs
{
const struct block *block;
int i;
+ const blockvector *bv = symtab->compunit ()->blockvector ();
- for (i = FIRST_LOCAL_BLOCK;
- i < BLOCKVECTOR_NBLOCKS (symtab->blockvector ());
- i++)
+ for (i = FIRST_LOCAL_BLOCK; i < BLOCKVECTOR_NBLOCKS (bv); i++)
{
- block = BLOCKVECTOR_BLOCK (symtab->blockvector (), i);
+ block = BLOCKVECTOR_BLOCK (bv, i);
state->language->iterate_over_symbols
(block, lookup_name, name_domain,
[&] (block_symbol *bsym)
@@ -1232,7 +1231,8 @@ iterate_over_file_blocks
{
const struct block *block;
- for (block = BLOCKVECTOR_BLOCK (symtab->blockvector (), STATIC_BLOCK);
+ for (block = BLOCKVECTOR_BLOCK (symtab->compunit ()->blockvector (),
+ STATIC_BLOCK);
block != NULL;
block = BLOCK_SUPERBLOCK (block))
current_language->iterate_over_symbols (block, name, domain, callback);
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index eae8064..67630b7 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -628,7 +628,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
break;
case stGlobal: /* External symbol, goes into global block. */
- b = BLOCKVECTOR_BLOCK (top_stack->cur_st->blockvector (),
+ b = BLOCKVECTOR_BLOCK (top_stack->cur_st->compunit ()->blockvector (),
GLOBAL_BLOCK);
s = new_symbol (name);
SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
@@ -771,7 +771,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
if (sh->st == stProc)
{
const struct blockvector *bv
- = top_stack->cur_st->blockvector ();
+ = top_stack->cur_st->compunit ()->blockvector ();
/* The next test should normally be true, but provides a
hook for nested functions (which we don't want to make
@@ -1144,7 +1144,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
{
/* Finished with procedure */
const struct blockvector *bv
- = top_stack->cur_st->blockvector ();
+ = top_stack->cur_st->compunit ()->blockvector ();
struct mdebug_extra_func_info *e;
struct block *cblock = top_stack->cur_block;
struct type *ftype = top_stack->cur_type;
@@ -4187,7 +4187,7 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
FIXME, Maybe quit once we have found the right number of ext's? */
top_stack->cur_st = cust->primary_filetab ();
top_stack->cur_block
- = BLOCKVECTOR_BLOCK (top_stack->cur_st->blockvector (),
+ = BLOCKVECTOR_BLOCK (top_stack->cur_st->compunit ()->blockvector (),
GLOBAL_BLOCK);
top_stack->blocktype = stFile;
@@ -4497,13 +4497,14 @@ add_block (struct block *b, struct symtab *s)
{
/* Cast away "const", but that's ok because we're building the
symtab and blockvector here. */
- struct blockvector *bv = (struct blockvector *) s->blockvector ();
+ struct blockvector *bv
+ = (struct blockvector *) s->compunit ()->blockvector ();
bv = (struct blockvector *) xrealloc ((void *) bv,
(sizeof (struct blockvector)
+ BLOCKVECTOR_NBLOCKS (bv)
* sizeof (bv->block)));
- if (bv != s->blockvector ())
+ if (bv != s->compunit ()->blockvector ())
s->compunit ()->set_blockvector (bv);
BLOCKVECTOR_BLOCK (bv, BLOCKVECTOR_NBLOCKS (bv)++) = b;
@@ -4567,7 +4568,8 @@ sort_blocks (struct symtab *s)
{
/* We have to cast away const here, but this is ok because we're
constructing the blockvector in this code. */
- struct blockvector *bv = (struct blockvector *) s->blockvector ();
+ struct blockvector *bv
+ = (struct blockvector *) s->compunit ()->blockvector ();
if (BLOCKVECTOR_NBLOCKS (bv) <= FIRST_LOCAL_BLOCK)
{
diff --git a/gdb/p-exp.y b/gdb/p-exp.y
index 024a335..adceff2 100644
--- a/gdb/p-exp.y
+++ b/gdb/p-exp.y
@@ -619,8 +619,9 @@ block : BLOCKNAME
struct symtab *tem =
lookup_symtab (copy.c_str ());
if (tem)
- $$ = BLOCKVECTOR_BLOCK (tem->blockvector (),
- STATIC_BLOCK);
+ $$ = BLOCKVECTOR_BLOCK
+ (tem->compunit ()->blockvector (),
+ STATIC_BLOCK);
else
error (_("No file or function \"%s\"."),
copy.c_str ());
diff --git a/gdb/parse.c b/gdb/parse.c
index 7637e57..6d1b3d9 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -465,7 +465,7 @@ parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
struct symtab_and_line cursal = get_current_source_symtab_and_line ();
if (cursal.symtab)
expression_context_block
- = BLOCKVECTOR_BLOCK (cursal.symtab->blockvector (),
+ = BLOCKVECTOR_BLOCK (cursal.symtab->compunit ()->blockvector (),
STATIC_BLOCK);
if (expression_context_block)
expression_context_pc = BLOCK_ENTRY_PC (expression_context_block);
diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c
index bfda599..7ce4292 100644
--- a/gdb/python/py-symtab.c
+++ b/gdb/python/py-symtab.c
@@ -181,7 +181,7 @@ stpy_global_block (PyObject *self, PyObject *args)
STPY_REQUIRE_VALID (self, symtab);
- blockvector = symtab->blockvector ();
+ blockvector = symtab->compunit ()->blockvector ();
block = BLOCKVECTOR_BLOCK (blockvector, GLOBAL_BLOCK);
return block_to_block_object (block, symtab->objfile ());
}
@@ -197,7 +197,7 @@ stpy_static_block (PyObject *self, PyObject *args)
STPY_REQUIRE_VALID (self, symtab);
- blockvector = symtab->blockvector ();
+ blockvector = symtab->compunit ()->blockvector ();
block = BLOCKVECTOR_BLOCK (blockvector, STATIC_BLOCK);
return block_to_block_object (block, symtab->objfile ());
}
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index 5d8d641..1843eb8 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -278,7 +278,7 @@ dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
if (is_main_symtab_of_compunit_symtab (symtab))
{
gdb_printf (outfile, "\nBlockvector:\n\n");
- bv = symtab->blockvector ();
+ bv = symtab->compunit ()->blockvector ();
len = BLOCKVECTOR_NBLOCKS (bv);
for (i = 0; i < len; i++)
{
diff --git a/gdb/symtab.h b/gdb/symtab.h
index 567c0fc..8852590 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1476,8 +1476,6 @@ struct symtab
m_language = language;
}
- const struct blockvector *blockvector () const;
-
struct objfile *objfile () const;
program_space *pspace () const;
@@ -1755,12 +1753,6 @@ struct compunit_symtab
using compunit_symtab_range = next_range<compunit_symtab>;
-inline const struct blockvector *
-symtab::blockvector () const
-{
- return this->compunit ()->blockvector ();
-}
-
inline struct objfile *
symtab::objfile () const
{