diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index e4f5240..f3e3f56 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -14684,18 +14684,20 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die, gdb_byte *data; data = obstack_alloc (&cu->objfile->objfile_obstack, - DW_BLOCK (attr)->size + additional_data_size); - memcpy (data, DW_BLOCK (attr)->data, DW_BLOCK (attr)->size); - memcpy (data + DW_BLOCK (attr)->size, + DW_BLOCK (target_attr)->size + additional_data_size); + memcpy (data, DW_BLOCK (target_attr)->data, + DW_BLOCK (target_attr)->size); + memcpy (data + DW_BLOCK (target_attr)->size, additional_data, additional_data_size); baton->locexpr.data = data; - baton->locexpr.size = DW_BLOCK (attr)->size + additional_data_size; + baton->locexpr.size = (DW_BLOCK (target_attr)->size + + additional_data_size); } else { - baton->locexpr.data = DW_BLOCK (attr)->data; - baton->locexpr.size = DW_BLOCK (attr)->size; + baton->locexpr.data = DW_BLOCK (target_attr)->data; + baton->locexpr.size = DW_BLOCK (target_attr)->size; } prop->data.baton = baton;