[PATCH][gdb/testsuite] Fix gdb.ada/literals.exp with aarch64
Tom de Vries
tdevries@suse.de
Thu Jul 28 14:21:35 GMT 2022
On 7/28/22 15:10, Joel Brobecker wrote:
>>> Thanks for the patch.
>>>
>>> My question is whether it actually makes sense that -1 be
>>> a valid output for the print command above. I tried the addition
>>> of ...
>>>
>>> | /* Note: Interprets ULLONG_MAX as -1. */
>>> | yylval.typed_val.type = type_long_long (par_state);
>>>
>>> ... to a patch of yours:
>>>
>>> | commit ac3afe36d73c84096685fece885d70b28bc9629f
>>> | Author: Tom de Vries <tdevries@suse.de>
>>> | Date: Sat Jun 4 13:17:33 2022 +0200
>>> | Subject: [gdb/ada] Fix literal truncation
>>> |
>>> | Make sure we error out on overflow instead of truncating in all cases.
>>> |
>>> | Tested on x86_64-linux, with a build with --enable-targets=all.
>>>
>>> Do you remember why we do this? Intuitively, you'd expect that GDB
>>> would behave the same regardless of whether it selects type "long"
>>> or "long long" for its processing, as long as both types are 64-bit.
>>>
>>
>> I have no idea. AFAICT it's been in gdb since the "Add base ada language
>> files" commit from 2002 that we avoid "unsigned long long".
>>
>> I've taken care to preserve the behaviour in the commit you refer to (and
>> this patch), since I don't have the knowledge to decide that things should
>> be different.
>>
>>> With the above, we can take this patch as an intermediate remedy,
>>> but I think we might need to dig deeper into why we use a signed
>>> type in the case of long long but not long, particularly when both
>>> types are the same size.
>>>
>>> WDYT?
>>>
>>
>> I'd be happy to write a patch to change the behaviour of gdb. But somebody
>> knowledgeable in Ada needs to specify what that needs to be.
>
> We're really outside of the Ada language. Would you mind checking
> what the C language does? I think it would make sense to do the same,
> here. E.g., on x86_64-linux, I get:
>
> (gdb) p 0xffffffffffffffff
> $1 = 18446744073709551615
>
Ack, that's what the C language does.
This patch changes gdb to print 18446744073709551615 for ada as well.
So, pick your favorite patch ;)
Thanks,
- Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-gdb-testsuite-Fix-gdb.ada-literals.exp-with-aarch64.patch
Type: text/x-patch
Size: 2886 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/gdb-patches/attachments/20220728/433c862c/attachment.bin>
More information about the Gdb-patches
mailing list