Message ID | 20190823222100.30298-1-simon.marchi@efficios.com |
---|---|
State | New |
Headers | show |
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
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 3dc34ab5a339..bd8323185fa6 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -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); diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 6cc7566580ab..0bc38e8428be 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -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); diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c index 0f9da66e536f..c5b565fc517e 100644 --- a/gdb/symfile-debug.c +++ b/gdb/symfile-debug.c @@ -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); diff --git a/gdb/symfile.h b/gdb/symfile.h index 741b085e0c4f..9633a599fd09 100644 --- a/gdb/symfile.h +++ b/gdb/symfile.h @@ -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