aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2loc.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2018-08-23 16:00:49 -0700
committerKevin Buettner <kevinb@redhat.com>2018-08-23 16:19:18 -0700
commit2b1ffcfd6fe5b88d50b6ad1c2ab3e9623ede5e35 (patch)
tree187eea088cb843119ac725f8efdb15819a6db63c /gdb/dwarf2loc.c
parente94802301b37de0e75e9329a96b0e70d38e5ead9 (diff)
downloadgdb-2b1ffcfd6fe5b88d50b6ad1c2ab3e9623ede5e35.zip
gdb-2b1ffcfd6fe5b88d50b6ad1c2ab3e9623ede5e35.tar.gz
gdb-2b1ffcfd6fe5b88d50b6ad1c2ab3e9623ede5e35.tar.bz2
Use BLOCK_ENTRY_PC in place of most uses of BLOCK_START
This change/patch substitues BLOCK_ENTRY_PC for BLOCK_START in places where BLOCK_START is used to obtain the address at which execution should enter the block. Since blocks can now contain non-contiguous ranges, the BLOCK_START - which is still be the very lowest address in the block - might not be the same as BLOCK_ENTRY_PC. There is a change to infrun.c which is less obvious and less mechanical. I'm posting it as a separate patch. gdb/ChangeLog: * ax-gdb.c (gen_var_ref): Use BLOCK_ENTRY_PC in place of BLOCK_START. * blockframe.c (get_pc_function_start): Likewise. * compile/compile-c-symbols.c (convert_one_symbol): Likewise. (gcc_symbol_address): Likewise. * compile/compile-object-run.c (compile_object_run): Likewise. * compile/compile.c (get_expr_block_and_pc): Likewise. * dwarf2loc.c (dwarf2_find_location_expression): Likewise. (func_addr_to_tail_call_list): Likewise. * findvar.c (default_read_var_value): Likewise. * inline-frame.c (inline_frame_this_id): Likewise. (skip-inline_frames): Likewise. * infcmd.c (until_next_command): Likewise. * linespec.c (convert_linespec_to_sals): Likewise. * parse.c (parse_exp_in_context_1): Likewise. * printcmd.c (build_address_symbolic): likewise. (info_address_command): Likewise. symtab.c (find_function_start_sal): Likewise. (skip_prologue_sal): Likewise. (find_function_alias_target): Likewise. (find_gnu_ifunc): Likewise. * stack.c (find_frame_funname): Likewise. * symtab.c (fixup_symbol_section): Likewise. (find_function_start_sal): Likewise. (skip_prologue_sal): Likewsie. (find_function_alias_target): Likewise. (find_gnu_ifunc): Likewise. * tracepoint.c (info_scope_command): Likewise. * value.c (value_fn_field): Likewise.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r--gdb/dwarf2loc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index df2f231..200fa03 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -367,7 +367,7 @@ dwarf2_find_location_expression (struct dwarf2_loclist_baton *baton,
if (pc_block)
pc_func = block_linkage_function (pc_block);
- if (pc_func && pc == BLOCK_START (SYMBOL_BLOCK_VALUE (pc_func)))
+ if (pc_func && pc == BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (pc_func)))
{
*locexpr_length = length;
return loc_ptr;
@@ -871,7 +871,7 @@ func_addr_to_tail_call_list (struct gdbarch *gdbarch, CORE_ADDR addr)
struct symbol *sym = find_pc_function (addr);
struct type *type;
- if (sym == NULL || BLOCK_START (SYMBOL_BLOCK_VALUE (sym)) != addr)
+ if (sym == NULL || BLOCK_ENTRY_PC (SYMBOL_BLOCK_VALUE (sym)) != addr)
throw_error (NO_ENTRY_VALUE_ERROR,
_("DW_TAG_call_site resolving failed to find function "
"name for address %s"),