mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-05 15:17:13 +08:00
constify struct block in some places
This makes some spots in gdb, particularly general_symbol_info, use a "const struct block", then fixes the fallout. The justification is that, ordinarily, blocks ought to be readonly. Note though that we can't add "const" in the blockvector due to block relocation. This can be done once blocks are made independent of the program space. 2014-06-18 Tom Tromey <tromey@redhat.com> * varobj.c (varobj_create): Update. * valops.c (value_of_this): Update. * tracepoint.c (add_local_symbols, scope_info): Update. * symtab.h (struct general_symbol_info) <block>: Now const. * symtab.c (skip_prologue_sal) (default_make_symbol_completion_list_break_on) (skip_prologue_using_sal): Update. * stack.h (iterate_over_block_locals) (iterate_over_block_local_vars): Update. * stack.c (print_frame_args): Update. (iterate_over_block_locals, iterate_over_block_local_vars): Make parameter const. (get_selected_block): Make return type const. * python/py-frame.c (frapy_block): Update. * python/py-block.c (gdbpy_block_for_pc): Update. * p-exp.y (%union) <bval>: Now const. * mi/mi-cmd-stack.c (list_args_or_locals): Update. * mdebugread.c (mylookup_symbol, parse_procedure): Update. * m2-exp.y (%union) <bval>: Now const. * linespec.c (get_current_search_block): Make return type const. (create_sals_line_offset, find_label_symbols): Update. * inline-frame.c (inline_frame_sniffer, skip_inline_frames): Update. (block_starting_point_at): Make "block" const. * infrun.c (insert_exception_resume_breakpoint): Make "b" const. (check_exception_resume): Update. * guile/scm-frame.c (gdbscm_frame_block): Update. * guile/scm-block.c (gdbscm_lookup_block): Update. * frame.h (get_frame_block): Update. (get_selected_block): Make return type const. * frame.c (frame_id_inner): Update. * f-valprint.c (info_common_command_for_block) (info_common_command): Update. * dwarf2loc.c (dwarf2_find_location_expression) (dwarf_expr_frame_base, dwarf2_compile_expr_to_ax) (locexpr_describe_location_piece): Update. * c-exp.y (%union) <bval>: Now const. * breakpoint.c (resolve_sal_pc): Update. * blockframe.c (get_frame_block):Make return type const. (get_pc_function_start, get_frame_function, find_pc_sect_function) (block_innermost_frame): Update. * block.h (blockvector_for_pc, blockvector_for_pc_sect) (block_for_pc, block_for_pc_sect): Update. * block.c (blockvector_for_pc_sect, blockvector_for_pc): Make 'pblock' const. (block_for_pc_sect, block_for_pc): Make return type const. * ax-gdb.c (gen_expr): Update. * alpha-mdebug-tdep.c (find_proc_desc): Update. * ada-lang.c (ada_read_renaming_var_value): Make 'block' const. (ada_make_symbol_completion_list, ada_add_exceptions_from_frame) (ada_read_var_value): Update. * ada-exp.y (struct name_info) <block>: Now const. (%union): Likewise. (block_lookup): Constify.
This commit is contained in:
12
gdb/stack.c
12
gdb/stack.c
@ -538,7 +538,7 @@ print_frame_args (struct symbol *func, struct frame_info *frame,
|
||||
|
||||
if (func)
|
||||
{
|
||||
struct block *b = SYMBOL_BLOCK_VALUE (func);
|
||||
const struct block *b = SYMBOL_BLOCK_VALUE (func);
|
||||
struct block_iterator iter;
|
||||
struct symbol *sym;
|
||||
|
||||
@ -1928,7 +1928,7 @@ backtrace_full_command (char *arg, int from_tty)
|
||||
CB_DATA. */
|
||||
|
||||
static void
|
||||
iterate_over_block_locals (struct block *b,
|
||||
iterate_over_block_locals (const struct block *b,
|
||||
iterate_over_block_arg_local_vars_cb cb,
|
||||
void *cb_data)
|
||||
{
|
||||
@ -2011,7 +2011,7 @@ print_block_frame_labels (struct gdbarch *gdbarch, struct block *b,
|
||||
superblocks, stopping when the top-level block is reached. */
|
||||
|
||||
void
|
||||
iterate_over_block_local_vars (struct block *block,
|
||||
iterate_over_block_local_vars (const struct block *block,
|
||||
iterate_over_block_arg_local_vars_cb cb,
|
||||
void *cb_data)
|
||||
{
|
||||
@ -2073,7 +2073,7 @@ print_frame_local_vars (struct frame_info *frame, int num_tabs,
|
||||
struct ui_file *stream)
|
||||
{
|
||||
struct print_variable_and_value_data cb_data;
|
||||
struct block *block;
|
||||
const struct block *block;
|
||||
CORE_ADDR pc;
|
||||
|
||||
if (!get_frame_pc_if_available (frame, &pc))
|
||||
@ -2118,7 +2118,7 @@ locals_info (char *args, int from_tty)
|
||||
Returns 1 if any argument was walked; 0 otherwise. */
|
||||
|
||||
void
|
||||
iterate_over_block_arg_vars (struct block *b,
|
||||
iterate_over_block_arg_vars (const struct block *b,
|
||||
iterate_over_block_arg_local_vars_cb cb,
|
||||
void *cb_data)
|
||||
{
|
||||
@ -2221,7 +2221,7 @@ select_and_print_frame (struct frame_info *frame)
|
||||
code address within the block returned. We use this to decide
|
||||
which macros are in scope. */
|
||||
|
||||
struct block *
|
||||
const struct block *
|
||||
get_selected_block (CORE_ADDR *addr_in_block)
|
||||
{
|
||||
if (!has_stack_frames ())
|
||||
|
Reference in New Issue
Block a user