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 943643947C38 for ; Fri, 28 Jan 2022 12:49:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 943643947C38 X-ASG-Debug-ID: 1643374173-0c856e06ad271a70001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id jWRJes1jgE0GYlBU (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 28 Jan 2022 07:49:33 -0500 (EST) 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 1D6A0441D66; Fri, 28 Jan 2022 07:49:33 -0500 (EST) 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 Cc: Simon Marchi Subject: [PATCH 19/33] gdb: remove SYMTAB_BLOCKVECTOR macro Date: Fri, 28 Jan 2022 07:45:17 -0500 X-ASG-Orig-Subj: [PATCH 19/33] gdb: remove SYMTAB_BLOCKVECTOR macro Message-Id: <20220128124531.2302941-20-simon.marchi@polymtl.ca> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220128124531.2302941-1-simon.marchi@polymtl.ca> References: <20220128124531.2302941-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: 1643374173 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-Scan-Msg-Size: 12436 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.95629 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Spam-Status: No, score=-3612.5 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: Fri, 28 Jan 2022 12:49:36 -0000 From: Simon Marchi Remove the macro, replace with an equivalent method. Change-Id: Id6fe2a79c04bcd6c69ccaefb7a69bc06a476288c --- gdb/ada-exp.y | 2 +- gdb/ada-lang.c | 4 ++-- gdb/c-exp.y | 2 +- 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 | 6 +++--- gdb/mdebugread.c | 14 +++++++------- gdb/p-exp.y | 2 +- gdb/parse.c | 2 +- gdb/python/py-symtab.c | 4 ++-- gdb/symmisc.c | 2 +- gdb/symtab.h | 10 ++++++++-- 14 files changed, 32 insertions(+), 26 deletions(-) diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 16ba336df4aa..0d5083f513bf 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -1302,7 +1302,7 @@ block_lookup (const struct block *context, const char *raw_name) symtab = NULL; if (symtab != NULL) - result = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK); + result = BLOCKVECTOR_BLOCK (symtab->blockvector (), STATIC_BLOCK); else if (syms.empty () || SYMBOL_CLASS (syms[0].symbol) != LOC_BLOCK) { if (context == NULL) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 2bb64ae03bde..f3b8442b5508 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -4384,9 +4384,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 (SYMTAB_BLOCKVECTOR (symbol_symtab (sym)), + && BLOCKVECTOR_BLOCK (symbol_symtab (sym)->blockvector (), GLOBAL_BLOCK) != block - && BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symbol_symtab (sym)), + && BLOCKVECTOR_BLOCK (symbol_symtab (sym)->blockvector (), STATIC_BLOCK) != block) return; diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 464ed44a2297..4b58ce041002 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -3109,7 +3109,7 @@ 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 (symtab), + yylval.bval = BLOCKVECTOR_BLOCK (symtab->blockvector (), STATIC_BLOCK); return FILENAME; } diff --git a/gdb/coffread.c b/gdb/coffread.c index f6bf973e9f75..af0699bed2d5 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 (SYMTAB_BLOCKVECTOR (s), STATIC_BLOCK); + b = BLOCKVECTOR_BLOCK (s->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 336e8d3d4351..692e9906fd7d 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 = SYMTAB_BLOCKVECTOR (func_sym->owner.symtab); + bv = func_sym->owner.symtab->blockvector (); nblocks = BLOCKVECTOR_NBLOCKS (bv); gdb_ptr_type_sym = NULL; diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c index 7bd6ac817b8f..5ab4e48f3061 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 (SYMTAB_BLOCKVECTOR (cursal.symtab), + block = BLOCKVECTOR_BLOCK (cursal.symtab->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 40410f7b9fbd..e2a90e580166 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 (symtab); + blockvector = symtab->blockvector (); block = BLOCKVECTOR_BLOCK (blockvector, GLOBAL_BLOCK); return bkscm_scm_from_block (block, SYMTAB_OBJFILE (symtab)); @@ -381,7 +381,7 @@ gdbscm_symtab_static_block (SCM self) const struct blockvector *blockvector; const struct block *block; - blockvector = SYMTAB_BLOCKVECTOR (symtab); + blockvector = symtab->blockvector (); block = BLOCKVECTOR_BLOCK (blockvector, STATIC_BLOCK); return bkscm_scm_from_block (block, SYMTAB_OBJFILE (symtab)); diff --git a/gdb/linespec.c b/gdb/linespec.c index c16e81753c0d..03be93728c2d 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -1190,10 +1190,10 @@ iterate_over_all_matching_symtabs int i; for (i = FIRST_LOCAL_BLOCK; - i < BLOCKVECTOR_NBLOCKS (SYMTAB_BLOCKVECTOR (symtab)); + i < BLOCKVECTOR_NBLOCKS (symtab->blockvector ()); i++) { - block = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), i); + block = BLOCKVECTOR_BLOCK (symtab->blockvector (), i); state->language->iterate_over_symbols (block, lookup_name, name_domain, [&] (block_symbol *bsym) @@ -1232,7 +1232,7 @@ iterate_over_file_blocks { const struct block *block; - for (block = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK); + for (block = BLOCKVECTOR_BLOCK (symtab->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 192fafa5d02a..b98ac8fe7996 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 (SYMTAB_BLOCKVECTOR (top_stack->cur_st), + b = BLOCKVECTOR_BLOCK (top_stack->cur_st->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 - = SYMTAB_BLOCKVECTOR (top_stack->cur_st); + = top_stack->cur_st->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 - = SYMTAB_BLOCKVECTOR (top_stack->cur_st); + = top_stack->cur_st->blockvector (); struct mdebug_extra_func_info *e; struct block *cblock = top_stack->cur_block; struct type *ftype = top_stack->cur_type; @@ -4186,7 +4186,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 (SYMTAB_BLOCKVECTOR (top_stack->cur_st), + = BLOCKVECTOR_BLOCK (top_stack->cur_st->blockvector (), GLOBAL_BLOCK); top_stack->blocktype = stFile; @@ -4496,13 +4496,13 @@ 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 *) SYMTAB_BLOCKVECTOR (s); + struct blockvector *bv = (struct blockvector *) s->blockvector (); bv = (struct blockvector *) xrealloc ((void *) bv, (sizeof (struct blockvector) + BLOCKVECTOR_NBLOCKS (bv) * sizeof (bv->block))); - if (bv != SYMTAB_BLOCKVECTOR (s)) + if (bv != s->blockvector ()) s->compunit ()->set_blockvector (bv); BLOCKVECTOR_BLOCK (bv, BLOCKVECTOR_NBLOCKS (bv)++) = b; @@ -4566,7 +4566,7 @@ 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 *) SYMTAB_BLOCKVECTOR (s); + struct blockvector *bv = (struct blockvector *) s->blockvector (); if (BLOCKVECTOR_NBLOCKS (bv) <= FIRST_LOCAL_BLOCK) { diff --git a/gdb/p-exp.y b/gdb/p-exp.y index 62b0a3be5a9a..10738d073f6e 100644 --- a/gdb/p-exp.y +++ b/gdb/p-exp.y @@ -619,7 +619,7 @@ block : BLOCKNAME struct symtab *tem = lookup_symtab (copy.c_str ()); if (tem) - $$ = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (tem), + $$ = BLOCKVECTOR_BLOCK (tem->blockvector (), STATIC_BLOCK); else error (_("No file or function \"%s\"."), diff --git a/gdb/parse.c b/gdb/parse.c index a6595e3da069..23f0e66bf275 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -462,7 +462,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 (SYMTAB_BLOCKVECTOR (cursal.symtab), + = BLOCKVECTOR_BLOCK (cursal.symtab->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 b5d102c1b7f1..33657f1e6e43 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 (symtab); + blockvector = symtab->blockvector (); block = BLOCKVECTOR_BLOCK (blockvector, GLOBAL_BLOCK); return block_to_block_object (block, SYMTAB_OBJFILE (symtab)); } @@ -197,7 +197,7 @@ stpy_static_block (PyObject *self, PyObject *args) STPY_REQUIRE_VALID (self, symtab); - blockvector = SYMTAB_BLOCKVECTOR (symtab); + blockvector = symtab->blockvector (); block = BLOCKVECTOR_BLOCK (blockvector, STATIC_BLOCK); return block_to_block_object (block, SYMTAB_OBJFILE (symtab)); } diff --git a/gdb/symmisc.c b/gdb/symmisc.c index 24b2915a3acc..3f5f840fbe7f 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)) { fprintf_filtered (outfile, "\nBlockvector:\n\n"); - bv = SYMTAB_BLOCKVECTOR (symtab); + bv = symtab->blockvector (); len = BLOCKVECTOR_NBLOCKS (bv); for (i = 0; i < len; i++) { diff --git a/gdb/symtab.h b/gdb/symtab.h index 28309695bca3..1935113336a8 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -1403,6 +1403,8 @@ struct symtab m_language = language; } + const struct blockvector *blockvector () const; + /* Unordered chain of all filetabs in the compunit, with the exception that the "main" source file is the first entry in the list. */ @@ -1435,8 +1437,6 @@ struct symtab using symtab_range = next_range; -#define SYMTAB_BLOCKVECTOR(symtab) \ - (symtab->compunit ()->blockvector ()) #define SYMTAB_OBJFILE(symtab) \ (symtab->compunit ()->objfile ()) #define SYMTAB_PSPACE(symtab) (SYMTAB_OBJFILE (symtab)->pspace) @@ -1683,6 +1683,12 @@ struct compunit_symtab using compunit_symtab_range = next_range; +inline const struct blockvector * +symtab::blockvector () const +{ + return this->compunit ()->blockvector (); +} + /* Return the language of CUST. */ extern enum language compunit_language (const struct compunit_symtab *cust); -- 2.34.1