+2019-03-24 Tom Tromey <tom@tromey.com>
+
+ * c-exp.y (typebase): Remove casts.
+ * gdbtypes.c (lookup_unsigned_typename, )
+ (lookup_signed_typename): Remove cast.
+ * eval.c (parse_to_comma_and_eval): Remove cast.
+ * parse.c (write_dollar_variable): Remove cast.
+ * block.h (struct block) <superblock>: Now const.
+ * symfile-debug.c (debug_qf_map_matching_symbols): Update.
+ * psymtab.c (psym_map_matching_symbols): Make "block" const.
+ (map_block): Make "block" const.
+ * symfile.h (struct quick_symbol_functions)
+ <map_matching_symbols>: Constify block argument to "callback".
+ * symtab.c (basic_lookup_transparent_type_quick): Make "block"
+ const.
+ (find_pc_sect_compunit_symtab): Make "b" const.
+ (find_symbol_at_address): Likewise.
+ (search_symbols): Likewise.
+ * dwarf2read.c (dw2_lookup_symbol): Make "block" const.
+ (dw2_debug_names_lookup_symbol): Likewise.
+ (dw2_map_matching_symbols): Update.
+ * p-valprint.c (pascal_val_print): Remove "block".
+ * ada-lang.c (ada_add_global_exceptions): Make "b" const.
+ (aux_add_nonlocal_symbols): Make "block" const.
+ (resolve_subexp): Remove cast.
+ * linespec.c (iterate_over_all_matching_symtabs): Make "block"
+ const.
+ (iterate_over_file_blocks): Likewise.
+ * f-exp.y (%union) <bval>: Remove.
+ * coffread.c (patch_opaque_types): Make "b" const.
+ * spu-tdep.c (spu_catch_start): Make "block" const.
+ * c-valprint.c (print_unpacked_pointer): Remove "block".
+ * symmisc.c (dump_symtab_1): Make "b" const.
+ (block_depth): Make "block" const.
+ * d-exp.y (%union) <bval>: Remove.
+ * cp-support.h (cp_lookup_rtti_type): Update.
+ * cp-support.c (cp_lookup_rtti_type): Make "block" const.
+ * psymtab.c (psym_lookup_symbol): Make "block" const.
+ (maintenance_check_psymtabs): Make "b" const.
+ * python/py-framefilter.c (extract_sym): Make "sym_block" const.
+ (enumerate_locals, enumerate_args): Update.
+ * python/py-symtab.c (stpy_global_block): Make "block" const.
+ (stpy_static_block): Likewise.
+ * inline-frame.c (block_starting_point_at): Make "new_block"
+ const.
+ * block.c (find_block_in_blockvector): Make return type const.
+ (blockvector_for_pc_sect): Make "b" const.
+ (find_block_in_blockvector): Make "b" const.
+
2019-03-23 Tom Tromey <tom@tromey.com>
* varobj.c (varobj_create): Update.
n_candidates =
ada_lookup_symbol_list (ada_decoded_op_name (op),
- (struct block *) NULL, VAR_DOMAIN,
+ NULL, VAR_DOMAIN,
&candidates);
i = ada_resolve_function (candidates.data (), n_candidates, argvec,
other has been found. */
static int
-aux_add_nonlocal_symbols (struct block *block, struct symbol *sym, void *data0)
+aux_add_nonlocal_symbols (const struct block *block, struct symbol *sym,
+ void *data0)
{
struct match_data *data = (struct match_data *) data0;
for (i = GLOBAL_BLOCK; i <= STATIC_BLOCK; i++)
{
- struct block *b = BLOCKVECTOR_BLOCK (bv, i);
+ const struct block *b = BLOCKVECTOR_BLOCK (bv, i);
struct block_iterator iter;
struct symbol *sym;
/* A helper function that checks whether PC is in the blockvector BL.
It returns the containing block if there is one, or else NULL. */
-static struct block *
+static const struct block *
find_block_in_blockvector (const struct blockvector *bl, CORE_ADDR pc)
{
- struct block *b;
+ const struct block *b;
int bot, top, half;
/* If we have an addrmap mapping code addresses to blocks, then use
that. */
if (BLOCKVECTOR_MAP (bl))
- return (struct block *) addrmap_find (BLOCKVECTOR_MAP (bl), pc);
+ return (const struct block *) addrmap_find (BLOCKVECTOR_MAP (bl), pc);
/* Otherwise, use binary search to find the last block that starts
before PC.
struct compunit_symtab *cust)
{
const struct blockvector *bl;
- struct block *b;
+ const struct block *b;
if (cust == NULL)
{
case of C) is the STATIC_BLOCK. The superblock of the
STATIC_BLOCK is the GLOBAL_BLOCK. */
- struct block *superblock;
+ const struct block *superblock;
/* This is used to store the symbols in the block. */
{ $$ = lookup_typename (parse_language (pstate),
parse_gdbarch (pstate),
"double",
- (struct block *) NULL,
+ NULL,
0); }
| LONG DOUBLE_KEYWORD
{ $$ = lookup_typename (parse_language (pstate),
parse_gdbarch (pstate),
"long double",
- (struct block *) NULL,
+ NULL,
0); }
| STRUCT name
{ $$ = lookup_struct (copy_name ($2),
struct value *vt_val;
struct symbol *wsym = NULL;
struct type *wtype;
- struct block *block = NULL;
if (want_space)
fputs_filtered (" ", stream);
{
const char *search_name
= MSYMBOL_SEARCH_NAME (msymbol.minsym);
- wsym = lookup_symbol_search_name (search_name, block,
+ wsym = lookup_symbol_search_name (search_name, NULL,
VAR_DOMAIN).symbol;
}
static void
patch_opaque_types (struct symtab *s)
{
- struct block *b;
+ const struct block *b;
struct block_iterator iter;
struct symbol *real_sym;
/* Lookup the rtti type for a class name. */
struct type *
-cp_lookup_rtti_type (const char *name, struct block *block)
+cp_lookup_rtti_type (const char *name, const struct block *block)
{
struct symbol * rtti_sym;
struct type * rtti_type;
std::vector<symbol *> *overload_list);
extern struct type *cp_lookup_rtti_type (const char *name,
- struct block *block);
+ const struct block *block);
/* Produce an unsigned hash value from SEARCH_NAME that is compatible
with cp_symbol_name_matches. Only the last component in
struct symtoken ssym;
int ival;
int voidval;
- struct block *bval;
enum exp_opcode opcode;
struct stoken_vector svec;
}
struct symbol *sym, *with_opaque = NULL;
struct compunit_symtab *stab = dw2_instantiate_symtab (per_cu, false);
const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (stab);
- struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
+ const struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
sym = block_find_symbol (block, name, domain,
block_find_non_opaque_type_preferred,
dw2_map_matching_symbols (struct objfile *objfile,
const char * name, domain_enum domain,
int global,
- int (*callback) (struct block *,
+ int (*callback) (const struct block *,
struct symbol *, void *),
void *data, symbol_name_match_type match,
symbol_compare_ftype *ordered_compare)
struct symbol *sym, *with_opaque = NULL;
struct compunit_symtab *stab = dw2_instantiate_symtab (per_cu, false);
const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (stab);
- struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
+ const struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
sym = block_find_symbol (block, name, domain,
block_find_non_opaque_type_preferred,
struct value *
parse_to_comma_and_eval (const char **expp)
{
- expression_up expr = parse_exp_1 (expp, 0, (struct block *) 0, 1);
+ expression_up expr = parse_exp_1 (expp, 0, nullptr, 1);
return evaluate_expression (expr.get ());
}
struct ttype tsym;
struct symtoken ssym;
int voidval;
- struct block *bval;
enum exp_opcode opcode;
struct internalvar *ivar;
strcpy (uns, "unsigned ");
strcpy (uns + 9, name);
- return lookup_typename (language, gdbarch, uns, (struct block *) NULL, 0);
+ return lookup_typename (language, gdbarch, uns, NULL, 0);
}
struct type *
strcpy (uns, "signed ");
strcpy (uns + 7, name);
- t = lookup_typename (language, gdbarch, uns, (struct block *) NULL, 1);
+ t = lookup_typename (language, gdbarch, uns, NULL, 1);
/* If we don't find "signed FOO" just try again with plain "FOO". */
if (t != NULL)
return t;
- return lookup_typename (language, gdbarch, name, (struct block *) NULL, 0);
+ return lookup_typename (language, gdbarch, name, NULL, 0);
}
/* Lookup a structure type named "struct NAME",
block_starting_point_at (CORE_ADDR pc, const struct block *block)
{
const struct blockvector *bv;
- struct block *new_block;
+ const struct block *new_block;
bv = blockvector_for_pc (pc, NULL);
if (BLOCKVECTOR_MAP (bv) == NULL)
return 0;
- new_block = (struct block *) addrmap_find (BLOCKVECTOR_MAP (bv), pc - 1);
+ new_block = (const struct block *) addrmap_find (BLOCKVECTOR_MAP (bv),
+ pc - 1);
if (new_block == NULL)
return 1;
if (include_inline)
{
- struct block *block;
+ const struct block *block;
int i;
for (i = FIRST_LOCAL_BLOCK;
(struct symtab *symtab, const lookup_name_info &name,
domain_enum domain, gdb::function_view<symbol_found_callback_ftype> callback)
{
- struct block *block;
+ const struct block *block;
for (block = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (symtab), STATIC_BLOCK);
block != NULL;
struct value *vt_val;
struct symbol *wsym = NULL;
struct type *wtype;
- struct block *block = NULL;
if (want_space)
fputs_filtered (" ", stream);
{
const char *search_name
= MSYMBOL_SEARCH_NAME (msymbol.minsym);
- wsym = lookup_symbol_search_name (search_name, block,
+ wsym = lookup_symbol_search_name (search_name, NULL,
VAR_DOMAIN).symbol;
}
/* On some systems, such as HP-UX and hppa-linux, certain system routines
have names beginning with $ or $$. Check for those, first. */
- sym = lookup_symbol (copy_name (str), (struct block *) NULL,
- VAR_DOMAIN, NULL);
+ sym = lookup_symbol (copy_name (str), NULL, VAR_DOMAIN, NULL);
if (sym.symbol)
{
write_exp_elt_opcode (ps, OP_VAR_VALUE);
partial symtab is empty, we can assume it won't here
because lookup_partial_symbol succeeded. */
const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (stab);
- struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
+ const struct block *block = BLOCKVECTOR_BLOCK (bv, block_index);
sym = block_find_symbol (block, name, domain,
block_find_non_opaque_type_preferred,
static int
map_block (const char *name, domain_enum domain, struct objfile *objfile,
- struct block *block,
- int (*callback) (struct block *, struct symbol *, void *),
+ const struct block *block,
+ int (*callback) (const struct block *, struct symbol *, void *),
void *data, symbol_name_match_type match)
{
struct block_iterator iter;
psym_map_matching_symbols (struct objfile *objfile,
const char *name, domain_enum domain,
int global,
- int (*callback) (struct block *,
+ int (*callback) (const struct block *,
struct symbol *, void *),
void *data,
symbol_name_match_type match,
ordered_compare))
{
struct compunit_symtab *cust = psymtab_to_symtab (objfile, ps);
- struct block *block;
+ const struct block *block;
if (cust == NULL)
continue;
struct symbol *sym;
struct compunit_symtab *cust = NULL;
const struct blockvector *bv;
- struct block *b;
+ const struct block *b;
int length;
for (objfile *objfile : current_program_space->objfiles ())
static enum ext_lang_bt_status
extract_sym (PyObject *obj, gdb::unique_xmalloc_ptr<char> *name,
- struct symbol **sym, struct block **sym_block,
+ struct symbol **sym, const struct block **sym_block,
const struct language_defn **language)
{
gdbpy_ref<> result (PyObject_CallMethod (obj, "symbol", NULL));
const struct language_defn *language;
gdb::unique_xmalloc_ptr<char> sym_name;
struct symbol *sym;
- struct block *sym_block;
+ const struct block *sym_block;
struct value *val;
enum ext_lang_bt_status success = EXT_LANG_BT_ERROR;
struct value *val;
enum ext_lang_bt_status success = EXT_LANG_BT_ERROR;
struct symbol *sym;
- struct block *sym_block;
+ const struct block *sym_block;
int local_indent = 8 + (8 * indent);
gdb::optional<ui_out_emit_tuple> tuple;
stpy_global_block (PyObject *self, PyObject *args)
{
struct symtab *symtab = NULL;
- struct block *block = NULL;
+ const struct block *block = NULL;
const struct blockvector *blockvector;
STPY_REQUIRE_VALID (self, symtab);
stpy_static_block (PyObject *self, PyObject *args)
{
struct symtab *symtab = NULL;
- struct block *block = NULL;
+ const struct block *block = NULL;
const struct blockvector *blockvector;
STPY_REQUIRE_VALID (self, symtab);
if (cust != NULL)
{
const struct blockvector *bv = COMPUNIT_BLOCKVECTOR (cust);
- struct block *block = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
+ const struct block *block = BLOCKVECTOR_BLOCK (bv, GLOBAL_BLOCK);
struct symbol *sym;
struct symtab_and_line sal;
debug_qf_map_matching_symbols (struct objfile *objfile,
const char *name, domain_enum domain,
int global,
- int (*callback) (struct block *,
+ int (*callback) (const struct block *,
struct symbol *, void *),
void *data,
symbol_name_match_type match,
void (*map_matching_symbols) (struct objfile *,
const char *name, domain_enum domain,
int global,
- int (*callback) (struct block *,
+ int (*callback) (const struct block *,
struct symbol *, void *),
void *data,
symbol_name_match_type match,
/* Prototypes for local functions */
-static int block_depth (struct block *);
+static int block_depth (const struct block *);
static void print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
int depth, ui_file *outfile);
struct linetable *l;
const struct blockvector *bv;
struct symbol *sym;
- struct block *b;
+ const struct block *b;
int depth;
fprintf_filtered (outfile, "\nSymtab for file %s\n",
/* Return the nexting depth of a block within other blocks in its symtab. */
static int
-block_depth (struct block *block)
+block_depth (const struct block *block)
{
int i = 0;
{
struct compunit_symtab *cust;
const struct blockvector *bv;
- struct block *block;
+ const struct block *block;
struct symbol *sym;
if (!objfile->sf)
{
for (compunit_symtab *cust : obj_file->compunits ())
{
- struct block *b;
+ const struct block *b;
const struct blockvector *bv;
bv = COMPUNIT_BLOCKVECTOR (cust);
for (int i = GLOBAL_BLOCK; i <= STATIC_BLOCK; ++i)
{
- struct block *b = BLOCKVECTOR_BLOCK (bv, i);
+ const struct block *b = BLOCKVECTOR_BLOCK (bv, i);
struct block_iterator iter;
struct symbol *sym;
int nfiles, const char *files[])
{
const struct blockvector *bv;
- struct block *b;
+ const struct block *b;
int i = 0;
struct block_iterator iter;
struct symbol *sym;