From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id AC1FF3865C2A for ; Wed, 6 Apr 2022 14:42:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AC1FF3865C2A X-ASG-Debug-ID: 1649256127-0c856e06abae93e0001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id AXwbcz5qnleMrqM4 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 06 Apr 2022 10:42:07 -0400 (EDT) X-Barracuda-Envelope-From: simon.marchi@polymtl.ca X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from simark.localdomain (192-222-157-6.qc.cable.ebox.net [192.222.157.6]) by smtp.ebox.ca (Postfix) with ESMTP id 742EC441D65; Wed, 6 Apr 2022 10:42:07 -0400 (EDT) From: Simon Marchi X-Barracuda-RBL-IP: 192.222.157.6 X-Barracuda-Effective-Source-IP: 192-222-157-6.qc.cable.ebox.net[192.222.157.6] X-Barracuda-Apparent-Source-IP: 192.222.157.6 To: gdb-patches@sourceware.org Subject: [PATCH 2/4] gdb: remove symtab::blockvector Date: Wed, 6 Apr 2022 10:42:03 -0400 X-ASG-Orig-Subj: [PATCH 2/4] gdb: remove symtab::blockvector Message-Id: <20220406144205.1415376-3-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220406144205.1415376-1-simon.marchi@polymtl.ca> References: <20220406144205.1415376-1-simon.marchi@polymtl.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1649256127 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-Scan-Msg-Size: 12495 X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.97169 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Spam-Status: No, score=-3612.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_QUARANTINE, KAM_DMARC_STATUS, KAM_STOCKGEN, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_SOFTFAIL, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Apr 2022 14:42:19 -0000 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 --- 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 5099e40f6772..a2755d7501ed 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 f80ec5b1e046..3a1624e9d26e 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 de29d2f70e23..4ed661e587b1 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 1de2a79a0d94..253ba9c095f8 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 b62a841d82a5..7364a4ae8b24 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 7983d1df1b51..2a1f0f1bd6b9 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 d1a5056aac86..386ccf569564 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 4d41f74ab2fb..5a6b620b33b7 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 eae80648e4c3..67630b793327 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 024a335453a1..adceff286362 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 7637e5799f78..6d1b3d9d9238 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 bfda599dddde..7ce4292c325d 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 5d8d641fa275..1843eb87d05e 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 567c0fcce7c0..8852590857e6 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; -inline const struct blockvector * -symtab::blockvector () const -{ - return this->compunit ()->blockvector (); -} - inline struct objfile * symtab::objfile () const { -- 2.35.1