commit f1cc987420d9d2489eb453bd1c87139666cbe7fd Author: Andreas Arnez Date: Tue Jun 13 15:20:27 2017 +0200 write_pieced_value: Include transfer size in byte-wise check In write_pieced_value, when checking whether the data can be transferred byte-wise, the current logic verifies the source- and destination offsets to be byte-aligned, but not the transfer size. This is fixed. gdb/ChangeLog: * dwarf2loc.c (write_pieced_value): Include transfer size in byte-wise check. ### a/gdb/ChangeLog ### b/gdb/ChangeLog ## -1,5 +1,10 @@ 2017-06-13 Andreas Arnez + * dwarf2loc.c (write_pieced_value): Include transfer size in + byte-wise check. + +2017-06-13 Andreas Arnez + * dwarf2loc.c (write_pieced_value): Fix copy/paste error in the calculation of this_size. --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -1986,7 +1986,10 @@ write_pieced_value (struct value *to, struct value *from) this_size = (this_size_bits + dest_offset_bits % 8 + 7) / 8; source_offset = source_offset_bits / 8; dest_offset = dest_offset_bits / 8; - if (dest_offset_bits % 8 == 0 && source_offset_bits % 8 == 0) + + /* Check whether the data can be transferred byte-wise. */ + if (dest_offset_bits % 8 == 0 && source_offset_bits % 8 == 0 + && this_size_bits % 8 == 0) { source_buffer = contents + source_offset; need_bitwise = 0;