diff options
author | Tom de Vries <tdevries@suse.de> | 2025-02-04 14:06:20 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2025-02-04 14:06:20 +0100 |
commit | 96a02b669eb4e5483bc820cc2cc8acfff8b8ae23 (patch) | |
tree | 70eec481f7176fcec1bce9bc9a766349511b700c | |
parent | c263c0ddcf9cad86ad76da7c6f057308c5d81bb1 (diff) | |
download | binutils-96a02b669eb4e5483bc820cc2cc8acfff8b8ae23.zip binutils-96a02b669eb4e5483bc820cc2cc8acfff8b8ae23.tar.gz binutils-96a02b669eb4e5483bc820cc2cc8acfff8b8ae23.tar.bz2 |
[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 <repeats 24 times>, 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.
-rw-r--r-- | gdb/testsuite/gdb.ada/big_packed_array.exp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.ada/big_packed_array.exp b/gdb/testsuite/gdb.ada/big_packed_array.exp index 33b1dfd..6f030f3 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 *-*-* } |