diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/dwarf2/loc.c | 6 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 593ff01..e5b4019 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2020-05-28 Simon Marchi <simon.marchi@efficios.com> + + * dwarf2/loc.c (class dwarf_evaluate_loc_desc) + <push_dwarf_reg_entry_value>: Remove assert. Override + per_objfile with caller_per_objfile. + 2020-05-28 Tom de Vries <tdevries@suse.de> * dwarf2/read.c (dw2_symtab_iter_next, dw2_expand_marked_cus): Limit diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index 7953361..1aab1a4 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -726,8 +726,6 @@ public: data_src = deref_size == -1 ? parameter->value : parameter->data_value; size = deref_size == -1 ? parameter->value_size : parameter->data_value_size; - gdb_assert (this->per_objfile == caller_per_objfile); - /* DEREF_SIZE size is not verified here. */ if (data_src == NULL) throw_error (NO_ENTRY_VALUE_ERROR, @@ -739,11 +737,13 @@ public: caller_per_cu); scoped_restore save_obj_addr = make_scoped_restore (&this->obj_address, (CORE_ADDR) 0); + scoped_restore save_per_objfile = make_scoped_restore (&this->per_objfile, + caller_per_objfile); scoped_restore save_arch = make_scoped_restore (&this->gdbarch); this->gdbarch = this->per_objfile->objfile->arch (); scoped_restore save_addr_size = make_scoped_restore (&this->addr_size); - this->addr_size = per_cu->addr_size (); + this->addr_size = this->per_cu->addr_size (); this->eval (data_src, size); } |