Re: GDB 8.2.90 available for testing

Alan Hayward
2019-03-04T13:57:54Z

> On 4 Mar 2019, at 11:14, Andrew Burgess <andrew.burgess@embecosm.com> wrote:
>
> * Jim Wilson <jimw@sifive.com> [2019-02-27 14:05:23 -0800]:
>
>> On 2/26/19 9:51 PM, Joel Brobecker wrote:
>>> I have just finished creating the gdb-8.2.90 pre-release.
>>> Please give it a test if you can and report any problems you might find.
>>
>> On a riscv64-linux system (HiFive Unleashed w/ Fedora Core 29), without an
>> Ada compiler in my path, I get
>>
>> === gdb Summary ===
>>
>> # of expected passes 50264
>> # of unexpected failures 2297
>> # of expected failures 57
>> # of unknown successes 3
>> # of known failures 79
>> # of untested testcases 132
>> # of unresolved testcases 110
>> # of unsupported tests 359
>>
>> which looks OK. There was no riscv-linux native support in gdb-8.2 so this
>> is a major improvement over the last one. I did used to have better results
>> though. I'm seeing
>>
>> hifiveu017:1040$ grep ^FAIL gdb.sum | grep infcall | wc
>> 878 8059 103059
>>
>> and I think that these mostly used to work, since I used to have about 1500
>> failures. I think something in the last 3 months broke this, but I haven't
>> had time to track it down. I see stuff like this in the log files
>>
>> p/d check_arg_struct_01_01 (ref_val_struct_01_01)^M
>> ../../binutils-gdb/gdb/riscv-tdep.c:2119: internal-error: void
>> riscv_call_arg_struct(riscv_arg_info*, riscv_call_info*): Assertion
>> `TYPE_LENGTH (ainfo->type) == TYPE_LENGTH (sinfo.field_type (0))' failed.^M
>> A problem internal to GDB has been detected,^M
>> further debugging may prove unreliable.^M
>> Quit this debugging session? (y or n) FAIL:
>> gdb.base/infcall-nested-structs.exp: l=c++: types-tfc: p/d
>> check_arg_struct_01_01 (ref_val_struct_01_01) (GDB internal error)
>
> I don't think these are regressions, just new tests that expose a bug
> that was present since the initial upstreaming. The issue relates to
> the difference in size between an empty struct in gcc and g++ (0 vs 1
> respectively), and how this effects argument passing.

I can confirm that for infcall-nested-structs.exp - I expanded that test fairly
significantly. You're probably running into all the same issues I fixed for
AArch64. There are some parts that fail for X86_64 too.

>
> I have a fix in progress, but it will probably be a couple of days
> before its ready to post. I guess we can back-port to 8.3 if I get
> the patch ready soon. I'm not too worried if it doesn't make it in
> though, if feels like an edge case.
>
> Thanks,
> Andrew