[PATCH 1/2] [gdb/testsuite] Fix gdb.base/examine-address-class.exp for big endian
Tom de Vries <[email protected]> Sun, 2 Aug 2026 11:34:20 +0200
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <[email protected]> |
On ppc64-linux and s390x-linux, with test-case
gdb.base/examine-address-class.exp I get:
...
(gdb) x/1dh (int *) &var^M
0x3fffffffe560: 0^M
(gdb) FAIL: $exp: x/1dh (int *) &var
...
This is caused by big vs. little endian.
On x86_64-linux (little endian), we have:
...
(gdb) p /x ((short *)&var)[0]
$6 = 0x2a
(gdb) p /x ((short *)&var)[1]
$7 = 0x0
(gdb)
...
And on ppc64-linux (big endian), we have:
...
(gdb) p /x ((short *)&var)[0]
$2 = 0x0
(gdb) p /x ((short *)&var)[1]
$3 = 0x2a
...
Fix this by assigning 0x002a0x002a to var, making sure that
((short *)&var)[0] == ((short *)&var)[1] == 42.
Tested on x86_64-linux, ppc64-linux and s390x-linux.
---
gdb/testsuite/gdb.base/examine-address-class.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.base/examine-address-class.c b/gdb/testsuite/gdb.base/examine-address-class.c
index c868b10119f..8f6b89c14bf 100644
--- a/gdb/testsuite/gdb.base/examine-address-class.c
+++ b/gdb/testsuite/gdb.base/examine-address-class.c
@@ -18,6 +18,6 @@
int
main (void)
{
- int var = 42;
+ int var = 0x002a002a;
return 0; /* break-here. */
}
--
2.51.0