aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tdevries@suse.de>2024-06-19 10:04:22 +0200
committerTom de Vries <tdevries@suse.de>2024-06-19 10:04:22 +0200
commit81ad8a2444b85fe1ea4515285f8bd569363cac12 (patch)
treeb566b1f81ee2a81a2374d222b0aed070081f2c21
parent78564d3f6c131db76a01de9492690a812e5e9141 (diff)
downloadbinutils-81ad8a2444b85fe1ea4515285f8bd569363cac12.zip
binutils-81ad8a2444b85fe1ea4515285f8bd569363cac12.tar.gz
binutils-81ad8a2444b85fe1ea4515285f8bd569363cac12.tar.bz2
[gdb/testsuite] Fix gdb.dwarf2/shortpiece.exp on s390x
On s390x-linux, I run into: ... (gdb) p (short []) s1^M $3 = {0, 1, 0, <optimized out>}^M (gdb) FAIL: gdb.dwarf2/shortpiece.exp: p (short []) s1 ... while this is expected: ... (gdb) p (short []) s1^M $3 = {1, 0, 0, <optimized out>}^M (gdb) PASS: gdb.dwarf2/shortpiece.exp: p (short []) s1 ... The type of s1 is: ... (gdb) ptype s1 type = struct S { myint a; myushort b; } ... so the difference is due the fact that viewing an int as two shorts gives different results depending on the endianness. Fix this by allowing both results. Tested on x86_64-linux and s390x-linux. Approved-By: Tom Tromey <tom@tromey.com>
-rw-r--r--gdb/testsuite/gdb.dwarf2/shortpiece.exp4
1 files changed, 3 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.dwarf2/shortpiece.exp b/gdb/testsuite/gdb.dwarf2/shortpiece.exp
index f7ff805..4fcdfca 100644
--- a/gdb/testsuite/gdb.dwarf2/shortpiece.exp
+++ b/gdb/testsuite/gdb.dwarf2/shortpiece.exp
@@ -138,7 +138,9 @@ gdb_test "p s2" \
# This test verifies that GDB can print a pieced value casted to a
# different type.
gdb_test "p (int \[\]) s1" " = \\{1, <optimized out>\\}"
-gdb_test "p (short \[\]) s1" " = \\{1, 0, 0, <optimized out>\\}"
+set re_little [string_to_regexp "{1, 0, 0, <optimized out>}"]
+set re_big [string_to_regexp "{0, 1, 0, <optimized out>}"]
+gdb_test {p (short []) s1} " = ($re_little|$re_big)"
# Test for correct output if the size of the original object is not a
# multiple of the array's element size.