Re: GDB 8.2.90 available for testing

Andrew Burgess
2019-03-04T11:15:01Z

* 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 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