From: Tom de Vries Date: Mon, 20 Sep 2021 13:07:57 +0000 (+0200) Subject: [gdb/testsuite] Fix gdb.ada/big_packed_array.exp xfail for -m32 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6f265beb28a7465c9e75fdb169d15a87f9a3a5d6;p=binutils-gdb.git [gdb/testsuite] Fix gdb.ada/big_packed_array.exp xfail for -m32 With test-case gdb.ada/big_packed_array.exp and target board unix/-m32 I run into: ... (gdb) print bad^M $2 = (0 => 0 , 160)^M (gdb) FAIL: gdb.ada/big_packed_array.exp: scenario=minimal: print bad ... The problem is that while the variable is an array of 196 bits (== 24.5 bytes), the debug information describes it as 25 unsigned char. This is PR gcc/101643, and the test-case contains an xfail for this, which catches only: ... (gdb) print bad^M $2 = (0 => 0 )^M ... Fix this by updating the xfail pattern. Tested on x86_64-linux. --- diff --git a/gdb/testsuite/gdb.ada/big_packed_array.exp b/gdb/testsuite/gdb.ada/big_packed_array.exp index 32ff0dd3e1c..e62f053166b 100644 --- a/gdb/testsuite/gdb.ada/big_packed_array.exp +++ b/gdb/testsuite/gdb.ada/big_packed_array.exp @@ -43,6 +43,7 @@ foreach_with_prefix scenario {all minimal} { set re "= \\(false \\)" set re_xfail "= \\(0 => 0 \\)" + set re_xfail2 "= \\(0 => 0 , ($decimal)\\)" gdb_test_multiple "print bad" "" { -re -wrap $re { pass $gdb_test_name @@ -54,5 +55,14 @@ foreach_with_prefix scenario {all minimal} { } fail $gdb_test_name } + -re -wrap $re_xfail2 { + set last $expect_out(1,string) + if { $have_xfail && [string is integer $last] \ + && [expr ($last & 0xf) == 0] } { + # gcc/101643 + setup_xfail *-*-* + } + fail $gdb_test_name + } } }