[binutils-gdb] [gdb/testsuite] Fix gdb.base/examine-address-class.exp for big endian

Tom de Vries via Gdb-cvs <[email protected]> Mon, 3 Aug 2026 08:20:09 +0000 (GMT)
Newsgroups gmane.comp.gdb.cvs
Message-ID <[email protected]>
https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D4222a82bb594=
c22ff390f1c48e02c04fdd0ba89b

commit 4222a82bb594c22ff390f1c48e02c04fdd0ba89b
Author: Tom de Vries <[email protected]>
Date:   Mon Aug 3 10:20:04 2026 +0200

    [gdb/testsuite] Fix gdb.base/examine-address-class.exp for big endian
   =20
    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
    ...
   =20
    This is caused by big vs. little endian.
   =20
    On x86_64-linux (little endian), we have:
    ...
    (gdb) p /x ((short *)&var)[0]
    $6 =3D 0x2a
    (gdb) p /x ((short *)&var)[1]
    $7 =3D 0x0
    (gdb)
    ...
   =20
    And on ppc64-linux (big endian), we have:
    ...
    (gdb) p /x ((short *)&var)[0]
    $2 =3D 0x0
    (gdb) p /x ((short *)&var)[1]
    $3 =3D 0x2a
    ...
   =20
    Fix this by assigning 0x002a002a to var, making sure that
    ((short *)&var)[0] =3D=3D ((short *)&var)[1] =3D=3D 42.
   =20
    Tested on x86_64-linux, ppc64-linux and s390x-linux.
   =20
    Approved-By: Kevin Buettner <[email protected]>

Diff:
---
 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 =3D 42;
+  int var =3D 0x002a002a;
   return 0; /* break-here.  */
 }