diff options
author | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2017-06-13 15:20:28 +0200 |
---|---|---|
committer | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2017-06-13 15:20:28 +0200 |
commit | 07c9ca3bd8e6f83bcec49c922b52422c538f60f7 (patch) | |
tree | 2a816fc1dc6c9cd54feed456979dccdfe4487420 /gdb/dwarf2loc.c | |
parent | f1cc987420d9d2489eb453bd1c87139666cbe7fd (diff) | |
download | binutils-gdb-07c9ca3bd8e6f83bcec49c922b52422c538f60f7.tar.gz |
write_pieced_value: Fix buffer offset for memory pieces
In write_pieced_value, when transferring the data to target memory via a
buffer, the bit offset within the target value is not reduced to its
sub-byte fraction before using it as a bit offset into the buffer. This
is fixed.
gdb/ChangeLog:
* dwarf2loc.c (write_pieced_value): In DWARF_VALUE_MEMORY,
truncate full bytes from dest_offset_bits before using it as an
offset into the buffer.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r-- | gdb/dwarf2loc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index 2849dadb772..67a123fd427 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -2058,7 +2058,7 @@ write_pieced_value (struct value *to, struct value *from) read_memory (p->v.mem.addr + dest_offset, buffer.data (), 1); read_memory (p->v.mem.addr + dest_offset + this_size - 1, &buffer[this_size - 1], 1); - copy_bitwise (buffer.data (), dest_offset_bits, + copy_bitwise (buffer.data (), dest_offset_bits % 8, contents, source_offset_bits, this_size_bits, bits_big_endian); |