public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb: remove symtab::blockvector
@ 2022-04-07 17:08 Simon Marchi
  0 siblings, 0 replies; only message in thread
From: Simon Marchi @ 2022-04-07 17:08 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=44281e6c08cae11d4e116d87ea34ad391d58ae91

commit 44281e6c08cae11d4e116d87ea34ad391d58ae91
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date:   Wed Apr 6 10:42:03 2022 -0400

    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

Diff:
---
 gdb/ada-exp.y                     |  3 ++-
 gdb/ada-lang.c                    |  4 ++--
 gdb/c-exp.y                       |  5 +++--
 gdb/coffread.c                    |  2 +-
 gdb/compile/compile-object-load.c |  2 +-
 gdb/compile/compile.c             |  2 +-
 gdb/guile/scm-symtab.c            |  4 ++--
 gdb/linespec.c                    | 10 +++++-----
 gdb/mdebugread.c                  | 16 +++++++++-------
 gdb/p-exp.y                       |  5 +++--
 gdb/parse.c                       |  2 +-
 gdb/python/py-symtab.c            |  4 ++--
 gdb/symmisc.c                     |  2 +-
 gdb/symtab.h                      |  8 --------
 14 files changed, 33 insertions(+), 36 deletions(-)

diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index 5099e40f677..a2755d7501e 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 f80ec5b1e04..3a1624e9d26 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 de29d2f70e2..4ed661e587b 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 1de2a79a0d9..253ba9c095f 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 b62a841d82a..7364a4ae8b2 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 7983d1df1b5..2a1f0f1bd6b 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 d1a5056aac8..386ccf56956 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 4d41f74ab2f..5a6b620b33b 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 eae80648e4c..67630b79332 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 024a335453a..adceff28636 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 7637e5799f7..6d1b3d9d923 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 bfda599dddd..7ce4292c325 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 5d8d641fa27..1843eb87d05 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 567c0fcce7c..8852590857e 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
 {


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-04-07 17:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-07 17:08 [binutils-gdb] gdb: remove symtab::blockvector Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).