On aarch64-linux I run into this failure with gcc 7.5.0:
...
(gdb) print $item.started^M
$1 = (-5312, 65535,
4202476)^M
(gdb) FAIL: gdb.ada/convvar_comp.exp: print $item.started
...
The test-case expects (0, 0, 0), but we're getting another value due to
incorrect location information.
Work around this by:
- first printing the value, and then
- verifying that the convenience variable matches the printed value.
I've verified that the test-case still checks what it should by disabling
the fix from commit
cc0e770c0d0 ("memory error printing component of record
from convenience variable") and observing the test-case fail.
Tested on x86_64-linux and aarch64-linux.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29420
return
}
+set val ""
+gdb_test_multiple "print item.started" "" {
+ -re -wrap " = \\((.*)\\)" {
+ set val $expect_out(1,string)
+ pass $gdb_test_name
+ }
+}
+
gdb_test_no_output "set variable \$item := item"
gdb_test "print \$item.started" \
- " = \\(0, 0, 0\\)"
+ " = \\($val\\)"