[gdb/testsuite] Add xfail for PR gcc/101643
authorTom de Vries <tdevries@suse.de>
Tue, 27 Jul 2021 15:14:18 +0000 (17:14 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 27 Jul 2021 15:14:18 +0000 (17:14 +0200)
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.

gdb/ChangeLog
gdb/testsuite/gdb.ada/big_packed_array.exp

index f62884a37e4da25bd0faed7fcf267cd08f2c6f67..a917cdf4526b9f20d4bcce9e832ccb768ea3acdd 100644 (file)
@@ -1,3 +1,8 @@
+2021-07-27  Tom de Vries  <tdevries@suse.de>
+
+       PR testsuite/26904
+       * gdb/testsuite/gdb.ada/big_packed_array.exp: Add xfail.
+
 2021-07-27  Tom de Vries  <tdevries@suse.de>
 
        PR testsuite/26903
index 95cd7ebcc1de0160b96141f5edd574d070e7cc6d..32ff0dd3e1ccfcdd3dbb70bde5454c53a8cebf5d 100644 (file)
@@ -19,6 +19,11 @@ if { [skip_ada_tests] } { return -1 }
 
 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]
 
@@ -34,6 +39,20 @@ foreach_with_prefix scenario {all minimal} {
     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
+       }
+    }
 }
This page took 0.028758 seconds and 4 git commands to generate.