This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Regression for implptr.exp and pieces.exp [Re: [COMMIT PATCH] value_bits_valid: Fix latent bug.]
- From: "Andrew Burgess" <aburgess at broadcom dot com>
- To: "Jan Kratochvil" <jan dot kratochvil at redhat dot com>, "Pedro Alves" <palves at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Tue, 9 Jul 2013 15:15:54 +0100
- Subject: Re: Regression for implptr.exp and pieces.exp [Re: [COMMIT PATCH] value_bits_valid: Fix latent bug.]
- References: <20130704160927 dot 11801 dot 10290 dot stgit at brno dot lan> <51D6DB44 dot 1000609 at broadcom dot com> <51D6E0EB dot 3040006 at redhat dot com> <51D6E441 dot 4040709 at broadcom dot com> <51D70EBB dot 4050505 at redhat dot com> <51DA92D9 dot 8050408 at broadcom dot com> <20130709095442 dot GA20006 at host2 dot jankratochvil dot net>
On 09/07/2013 10:54 AM, Jan Kratochvil wrote:
> On Mon, 08 Jul 2013 12:22:17 +0200, Andrew Burgess wrote:
>> On 05/07/2013 7:21 PM, Pedro Alves wrote:
>>> On 07/05/2013 04:20 PM, Andrew Burgess wrote:
>>>
>>>> 2013-07-05 Andrew Burgess <aburgess@broadcom.com>
>>>>
>>>> * value.c (value_bits_valid): If the value is not lval_computed
>>>> or has no check validity handler then the answer is the
>>>> optimized_out flag, otherwise defer to the handler.
>>>
>>> OK.
>>
>> Committed.
>
> On any platform I test for 32-bit targets (either on i386 native host or on
> x86_64 host with -m32 target cflags) I get:
>
> 9f5e30f7cf73a3256fbb9a265c897aa3f2c91439 is the first bad commit
> commit 9f5e30f7cf73a3256fbb9a265c897aa3f2c91439
> Author: aburgess <aburgess>
> Date: Mon Jul 8 10:21:33 2013 +0000
>
> Fix bug in value_bits_valid.
>
> http://sourceware.org/ml/gdb-patches/2013-07/msg00174.html
>
> * value.c (value_bits_valid): If the value is not lval_computed
> or has no check validity handler then the answer is the
> optimized_out flag, otherwise defer to the handler.
>
> Running gdb/testsuite/gdb.dwarf2/implptr.exp ...
> -PASS: gdb.dwarf2/implptr.exp: print j in implptr:bar
> +FAIL: gdb.dwarf2/implptr.exp: print j in implptr:bar
> -PASS: gdb.dwarf2/implptr.exp: print p[0].x in implptr:foo
> +FAIL: gdb.dwarf2/implptr.exp: print p[0].x in implptr:foo
>
> Running gdb/testsuite/gdb.dwarf2/pieces.exp ...
> -PASS: gdb.dwarf2/pieces.exp: print a.i in pieces:f3
> -PASS: gdb.dwarf2/pieces.exp: print a.j in pieces:f3
> -PASS: gdb.dwarf2/pieces.exp: set a.i in pieces:f3
> -PASS: gdb.dwarf2/pieces.exp: print new a.i in pieces:f3
> +FAIL: gdb.dwarf2/pieces.exp: print a.i in pieces:f3
> +FAIL: gdb.dwarf2/pieces.exp: print a.j in pieces:f3
> +FAIL: gdb.dwarf2/pieces.exp: set a.i in pieces:f3
> +FAIL: gdb.dwarf2/pieces.exp: print new a.i in pieces:f3
>
I've committed a patch to revert all the changes done by Pedro and
myself to value_bits_valid, this is what Pedro was going to do anyway here:
http://sourceware.org/ml/gdb-patches/2013-07/msg00200.html
before I jumped in.
Looking again at this function I don't believe either the original (now
current again) version, or any of the versions we've tried are actually
correct, but fixing this properly is going to be slightly more involved,
and I don't have time to put the patch together today.
Sorry for the inconvenience.
Andrew.