Change lookup_symbol's block_index parameter type to block_enum
Commit Message
The only two values valid to pass to the block_index parameter of
quick_symbol_functions::lookup_symbol are GLOBAL_BLOCK and STATIC_BLOCK,
part of enum block_enum. Change the type of that parameter to
block_enum.
Change also the block_index field of dw2_symtab_iterator in the same
way.. This makes it consistent with dw2_debug_names_iterator, which
already uses block_enum for its block_index field.
This is a follow-up to this thread:
https://sourceware.org/ml/gdb-patches/2019-08/msg00097.html
gdb/ChangeLog:
* dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
Change type to gdb::optional<block_enum>.
(dw2_symtab_iter_init): Change block_index parameter type
to gdb::optional<block_enum>.
(dw2_lookup_symbol): Change block_index parameter
type to block_enum.c
(dw2_debug_names_lookup_symbol): Likewise.
* psymtab.c (psym_lookup_symbol): Likewise.
* symfile-debug.c (debug_qf_lookup_symbol): Likewise.
* symfile.h (struct quick_symbol_functions) <lookup_symbol>:
Likewise.
---
gdb/dwarf2read.c | 9 ++++-----
gdb/psymtab.c | 2 +-
gdb/symfile-debug.c | 4 ++--
gdb/symfile.h | 2 +-
4 files changed, 8 insertions(+), 9 deletions(-)
Comments
On Fri, 23 Aug 2019 18:21:00 -0400
Simon Marchi <simon.marchi@efficios.com> wrote:
> The only two values valid to pass to the block_index parameter of
> quick_symbol_functions::lookup_symbol are GLOBAL_BLOCK and STATIC_BLOCK,
> part of enum block_enum. Change the type of that parameter to
> block_enum.
>
> Change also the block_index field of dw2_symtab_iterator in the same
> way.. This makes it consistent with dw2_debug_names_iterator, which
> already uses block_enum for its block_index field.
>
> This is a follow-up to this thread:
>
> https://sourceware.org/ml/gdb-patches/2019-08/msg00097.html
>
> gdb/ChangeLog:
>
> * dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
> Change type to gdb::optional<block_enum>.
> (dw2_symtab_iter_init): Change block_index parameter type
> to gdb::optional<block_enum>.
> (dw2_lookup_symbol): Change block_index parameter
> type to block_enum.c
> (dw2_debug_names_lookup_symbol): Likewise.
> * psymtab.c (psym_lookup_symbol): Likewise.
> * symfile-debug.c (debug_qf_lookup_symbol): Likewise.
> * symfile.h (struct quick_symbol_functions) <lookup_symbol>:
> Likewise.
LGTM.
Kevin
On 2019-09-07 11:50 a.m., Kevin Buettner wrote:
> On Fri, 23 Aug 2019 18:21:00 -0400
> Simon Marchi <simon.marchi@efficios.com> wrote:
>
>> The only two values valid to pass to the block_index parameter of
>> quick_symbol_functions::lookup_symbol are GLOBAL_BLOCK and STATIC_BLOCK,
>> part of enum block_enum. Change the type of that parameter to
>> block_enum.
>>
>> Change also the block_index field of dw2_symtab_iterator in the same
>> way.. This makes it consistent with dw2_debug_names_iterator, which
>> already uses block_enum for its block_index field.
>>
>> This is a follow-up to this thread:
>>
>> https://sourceware.org/ml/gdb-patches/2019-08/msg00097.html
>>
>> gdb/ChangeLog:
>>
>> * dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
>> Change type to gdb::optional<block_enum>.
>> (dw2_symtab_iter_init): Change block_index parameter type
>> to gdb::optional<block_enum>.
>> (dw2_lookup_symbol): Change block_index parameter
>> type to block_enum.c
>> (dw2_debug_names_lookup_symbol): Likewise.
>> * psymtab.c (psym_lookup_symbol): Likewise.
>> * symfile-debug.c (debug_qf_lookup_symbol): Likewise.
>> * symfile.h (struct quick_symbol_functions) <lookup_symbol>:
>> Likewise.
>
> LGTM.
>
> Kevin
>
Thanks, I pushed it with a trivial change: I noticed the line in symfile.h went over
80 columns, so I re-wrapped it.
Simon
@@ -3883,7 +3883,7 @@ struct dw2_symtab_iterator
struct dwarf2_per_objfile *dwarf2_per_objfile;
/* If set, only look for symbols that match that block. Valid values are
GLOBAL_BLOCK and STATIC_BLOCK. */
- gdb::optional<int> block_index;
+ gdb::optional<block_enum> block_index;
/* The kind of symbol we're looking for. */
domain_enum domain;
/* The list of CUs from the index entry of the symbol,
@@ -3905,7 +3905,7 @@ struct dw2_symtab_iterator
static void
dw2_symtab_iter_init (struct dw2_symtab_iterator *iter,
struct dwarf2_per_objfile *dwarf2_per_objfile,
- gdb::optional<int> block_index,
+ gdb::optional<block_enum> block_index,
domain_enum domain,
const char *name)
{
@@ -4018,7 +4018,7 @@ dw2_symtab_iter_next (struct dw2_symtab_iterator *iter)
}
static struct compunit_symtab *
-dw2_lookup_symbol (struct objfile *objfile, int block_index,
+dw2_lookup_symbol (struct objfile *objfile, block_enum block_index,
const char *name, domain_enum domain)
{
struct compunit_symtab *stab_best = NULL;
@@ -6003,10 +6003,9 @@ dw2_debug_names_iterator::next ()
}
static struct compunit_symtab *
-dw2_debug_names_lookup_symbol (struct objfile *objfile, int block_index_int,
+dw2_debug_names_lookup_symbol (struct objfile *objfile, block_enum block_index,
const char *name, domain_enum domain)
{
- const block_enum block_index = static_cast<block_enum> (block_index_int);
struct dwarf2_per_objfile *dwarf2_per_objfile
= get_dwarf2_per_objfile (objfile);
@@ -479,7 +479,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
static struct compunit_symtab *
psym_lookup_symbol (struct objfile *objfile,
- int block_index, const char *name,
+ block_enum block_index, const char *name,
const domain_enum domain)
{
const int psymtab_index = (block_index == GLOBAL_BLOCK ? 1 : 0);
@@ -140,8 +140,8 @@ debug_qf_map_symtabs_matching_filename
}
static struct compunit_symtab *
-debug_qf_lookup_symbol (struct objfile *objfile, int kind, const char *name,
- domain_enum domain)
+debug_qf_lookup_symbol (struct objfile *objfile, block_enum kind,
+ const char *name, domain_enum domain)
{
const struct debug_sym_fns_data *debug_data
= symfile_debug_objfile_data_key.get (objfile);
@@ -179,7 +179,7 @@ struct quick_symbol_functions
contains !TYPE_OPAQUE symbol prefer its compunit. If it contains
only TYPE_OPAQUE symbol(s), return at least that compunit. */
struct compunit_symtab *(*lookup_symbol) (struct objfile *objfile,
- int block_index, const char *name,
+ block_enum block_index, const char *name,
domain_enum domain);
/* Print statistics about any indices loaded for OBJFILE. The