From 1398f45a2641e0e9e0e331681655404ae1d4ed97 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Tue, 4 Feb 2025 14:06:20 +0100 Subject: [PATCH] [gdb/testsuite] Fix gdb.ada/big_packed_array.exp on s390x-linux When running test-case gdb.ada/big_packed_array.exp on s390x-linux, I run into: ... (gdb) print bad^M $2 = (0 => 0 , 1)^M (gdb) FAIL: gdb.ada/big_packed_array.exp: scenario=minimal: print bad ... This is with gcc 7.5.0, and this xfail should trigger: ... if { $have_xfail && [string is integer $last] \ && [expr ($last & 0xf) == 0] } { # gcc/101643 setup_xfail *-*-* } ... but it doesn't because $last is '1'. Fix this by using 0xf0 as mask for big endian. Tested on s390x-linux. --- gdb/testsuite/gdb.ada/big_packed_array.exp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/gdb.ada/big_packed_array.exp b/gdb/testsuite/gdb.ada/big_packed_array.exp index 33b1dfd7634..6f030f368d8 100644 --- a/gdb/testsuite/gdb.ada/big_packed_array.exp +++ b/gdb/testsuite/gdb.ada/big_packed_array.exp @@ -21,6 +21,8 @@ standard_ada_testfile foo_ra24_010 set old_gcc [gnat_version_compare < 9] +set endian [target_endianness] + foreach_gnat_encoding scenario flags {all minimal} { lappend flags debug @@ -54,8 +56,13 @@ foreach_gnat_encoding scenario flags {all minimal} { } -re -wrap $re_xfail2 { set last $expect_out(1,string) + if { $endian == "little" } { + set mask 0x0f + } else { + set mask 0xf0 + } if { $have_xfail && [string is integer $last] \ - && [expr ($last & 0xf) == 0] } { + && [expr ($last & $mask) == 0] } { # gcc/101643 setup_xfail *-*-* } base-commit: 60f9e60b8d92e20277026ee4ad5fdc71b2bbe09d -- 2.43.0