This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: What is gdb.base/structs2.exp actually testing?
- From: Daniel Jacobowitz <drow at false dot org>
- To: gdb at sources dot redhat dot com
- Date: Mon, 8 Mar 2004 09:54:54 -0500
- Subject: Re: What is gdb.base/structs2.exp actually testing?
- References: <20040308144154.GE11141@cygbert.vinschen.de>
On Mon, Mar 08, 2004 at 03:41:54PM +0100, Corinna Vinschen wrote:
> Hi,
>
> the subject already contains the question. What is the structs2 test
> good for? It's really not clear to me. There's a PR 13536 mentioned
> in the first line of structs2.c but this is a PRMS number and searching
> the gdb-patches archive didn't give me any useful hint. Is PRMS still
> accessible somewhere?
>
> The problem with this test is that it is based on the assumption, that
> GCC would not optimize away unused variables. The register arguments
> to param_reg are not reallyused, instead they only get values assigned.
> GCC is able to recognize this and to optimize away these assignments
> entirely, even in the non-optimize case! This happens for example on
> the SH target.
>
> The consequence of this fact is that the binary doesn't contain any
> debug information for the given register variables, so GDB doesn't know
> about them. In turn the testcase has two fails:
>
> FAIL: gdb.base/structs2.exp: structs2 continue1 (PRMS 13536)
> FAIL: gdb.base/structs2.exp: structs2 continue2 (PRMS 13536)
>
> due to the fact that the arguments are not printed, when the breakpoint
> is hit:
>
> Breakpoint 2, param_reg () at ...
>
> Are these tests really useful or shouldn't they either be dropped or
> modified to accomodate the above case?
Personally, that seems like a very dubious optimization for GCC to be
making at -O0... we can't change the calling convention at -O0, so the
arguments are there, so GCC ought to emit enough information for us to
find them. You didn't mention what compiler version you're testing
with...
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer