From 81ad8a2444b85fe1ea4515285f8bd569363cac12 Mon Sep 17 00:00:00 2001 From: Tom de Vries Date: Wed, 19 Jun 2024 10:04:22 +0200 Subject: [gdb/testsuite] Fix gdb.dwarf2/shortpiece.exp on s390x On s390x-linux, I run into: ... (gdb) p (short []) s1^M $3 = {0, 1, 0, }^M (gdb) FAIL: gdb.dwarf2/shortpiece.exp: p (short []) s1 ... while this is expected: ... (gdb) p (short []) s1^M $3 = {1, 0, 0, }^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 --- gdb/testsuite/gdb.dwarf2/shortpiece.exp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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, \\}" -gdb_test "p (short \[\]) s1" " = \\{1, 0, 0, \\}" +set re_little [string_to_regexp "{1, 0, 0, }"] +set re_big [string_to_regexp "{0, 1, 0, }"] +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. -- cgit v1.1