With gcc 8.5.0 I run into:
...
(gdb) print bad^M
$2 = (0 => 0 <repeats 25 times>)^M
(gdb) FAIL: gdb.ada/big_packed_array.exp: scenario=minimal: print bad
...
while with gcc 9.3.1 we have instead:
...
(gdb) print bad^M
$2 = (false <repeats 196 times>)^M
(gdb) PASS: gdb.ada/big_packed_array.exp: scenario=minimal: print bad
...
This is caused by gcc PR, which I've filed at
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101643 "[debug, ada] packed array
not described as packed".
Fix by marking this as XFAIL.
Tested on x86_64-linux.
gdb/ChangeLog:
2021-07-27 Tom de Vries <tdevries@suse.de>
PR testsuite/26904
* gdb/testsuite/gdb.ada/big_packed_array.exp: Add xfail.
standard_ada_testfile foo_ra24_010
+if [get_compiler_info] {
+ return -1
+}
+set old_gcc [expr [test_compiler_info {gcc-[0-8]-*}]]
+
foreach_with_prefix scenario {all minimal} {
set flags [list debug additional_flags=-fgnat-encodings=$scenario]
gdb_test "print good" \
"= \\(false <repeats 196 times>\\)" \
- gdb_test "print bad" \
- "= \\(false <repeats 196 times>\\)"
+ set have_xfail [expr $old_gcc && [string equal "$scenario" "minimal"]]
+
+ set re "= \\(false <repeats 196 times>\\)"
+ set re_xfail "= \\(0 => 0 <repeats 25 times>\\)"
+ gdb_test_multiple "print bad" "" {
+ -re -wrap $re {
+ pass $gdb_test_name
+ }
+ -re -wrap $re_xfail {
+ if { $have_xfail } {
+ # gcc/101643
+ setup_xfail *-*-*
+ }
+ fail $gdb_test_name
+ }
+ }
}