This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] bitfield-parent-optimized-out: Fix struct definition


On 11/11/2016 11:26 PM, Luis Machado wrote:
> On 11/11/2016 01:37 PM, Andreas Arnez wrote:
>> The "struct S" type in bitfield-parent-optimized-out.exp is declared to
>> have a size of 4 bytes but to hold two 4-byte members: an int-based
>> bitfield and a 4-byte int.  Also, both members have the same
>> data_member_location 2, causing them to overlap and to reach 2 bytes
>> beyond the structure's boundary.
>>
>> This is fixed by increasing the structure size to 8 and setting the
>> first and second member's data_member_location to 0 and 4, respectively.
>>
>> gdb/testsuite/ChangeLog:
>>
>>     * gdb.dwarf2/bitfield-parent-optimized-out.exp: Fix DWARF code for
>>     the definition of struct S.
>> ---
>>  gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git
>> a/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
>> b/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
>> index 27d8044..b789970 100644
>> --- a/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
>> +++ b/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
>> @@ -43,19 +43,18 @@ Dwarf::assemble $asm_file {
>>
>>          struct_label: structure_type {
>>          {name S}
>> -        {byte_size 4 DW_FORM_sdata}
>> +        {byte_size 8 DW_FORM_sdata}
>>          } {
>>          member {
>>              {name bitfield}
>>              {type :$int_label}
>>              {bit_size 12 DW_FORM_sdata}
>>              {bit_offset 20 DW_FORM_sdata}
>> -            {data_member_location 2 DW_FORM_sdata}
>>          }
>>          member {
>>              {name intfield}
>>              {type :$int_label}
>> -            {data_member_location 2 DW_FORM_sdata}
>> +            {data_member_location 4 DW_FORM_sdata}
>>          }
>>          }
>>
>>
> 
> The patch looks good to me, but i'm wondering if Pedro meant for both
> members to overlap (a union) instead of being two separate members?

Possibly; I don't remember.  If the changed test would still trigger
the old GDB bug, then I'm fine with the change.

Thanks,
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]