diff options
Diffstat (limited to 'gdb/dwarf2/loc.c')
-rw-r--r-- | gdb/dwarf2/loc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index 37e5a16..5cfd5a2 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -726,6 +726,18 @@ call_site_target::iterate_over_addresses } break; + case call_site_target::ADDRESSES: + { + dwarf2_per_objfile *per_objfile = call_site->per_objfile; + compunit_symtab *cust = per_objfile->get_symtab (call_site->per_cu); + int sect_idx = cust->block_line_section (); + CORE_ADDR delta = per_objfile->objfile->section_offsets[sect_idx]; + + for (unsigned i = 0; i < m_loc.addresses.length; ++i) + callback (m_loc.addresses.values[i] + delta); + } + break; + default: internal_error (__FILE__, __LINE__, _("invalid call site target kind")); } |