Message ID | 1494352015-10465-9-git-send-email-arnez@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
Andreas Arnez <arnez@linux.vnet.ibm.com> writes: > 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/dwarf2loc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c > index 1122c8a..8b5cbc5 100644 > --- a/gdb/dwarf2loc.c > +++ b/gdb/dwarf2loc.c > @@ -1986,7 +1986,8 @@ 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) > + if (dest_offset_bits % 8 == 0 && source_offset_bits % 8 == 0 > + && this_size_bits % 8 == 0) Can you add a comment here saying that "Check whether the data can be transferred byte-wise."? Otherwise, patch is good tome.
On Tue, May 16 2017, Yao Qi wrote: > Andreas Arnez <arnez@linux.vnet.ibm.com> writes: > >> 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/dwarf2loc.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c >> index 1122c8a..8b5cbc5 100644 >> --- a/gdb/dwarf2loc.c >> +++ b/gdb/dwarf2loc.c >> @@ -1986,7 +1986,8 @@ 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) >> + if (dest_offset_bits % 8 == 0 && source_offset_bits % 8 == 0 >> + && this_size_bits % 8 == 0) > > Can you add a comment here saying that "Check whether the data can be > transferred byte-wise."? OK. > Otherwise, patch is good tome. Thanks! -- Andreas
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index 1122c8a..8b5cbc5 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -1986,7 +1986,8 @@ 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) + if (dest_offset_bits % 8 == 0 && source_offset_bits % 8 == 0 + && this_size_bits % 8 == 0) { source_buffer = contents + source_offset; need_bitwise = 0;