diff options
author | Tom de Vries <tdevries@suse.de> | 2022-09-07 19:14:17 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-09-07 19:14:17 +0200 |
commit | d6398d6713ee13872056d3bd798add314d45aebf (patch) | |
tree | 74325a977fa2840909570a7cc6b0cf845477bc93 | |
parent | 154f2735ad4c2eb0985086b113825e6f4f3abcf1 (diff) | |
download | gdb-d6398d6713ee13872056d3bd798add314d45aebf.zip gdb-d6398d6713ee13872056d3bd798add314d45aebf.tar.gz gdb-d6398d6713ee13872056d3bd798add314d45aebf.tar.bz2 |
[gdb/testsuite] xfail gdb.ada/O2_float_param.exp for aarch64 and gcc 7.5.0
On aarch64-linux, with gcc 7.5.0, we run into:
...
(gdb) frame^M
#0 callee.increment (val=99.0, val@entry=9.18340949e-41, msg=...) at \
callee.adb:21^M
21 if Val > 200.0 then^M
(gdb) FAIL: gdb.ada/O2_float_param.exp: scenario=all: frame
...
The problem is a GCC bug, filed as "PR98148 - [AArch64] Wrong location
expression for function entry values" (
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98148 ).
Xfail the test for aarch64 and gcc 7.
Tested on x86_64-linux and aarch64-linux.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29418
-rw-r--r-- | gdb/testsuite/gdb.ada/O2_float_param.exp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/gdb/testsuite/gdb.ada/O2_float_param.exp b/gdb/testsuite/gdb.ada/O2_float_param.exp index 0c2969e..062a275 100644 --- a/gdb/testsuite/gdb.ada/O2_float_param.exp +++ b/gdb/testsuite/gdb.ada/O2_float_param.exp @@ -19,6 +19,13 @@ if { [skip_ada_tests] } { return -1 } standard_ada_testfile foo +set have_xfail 0 +if { [is_aarch64_target] } then { + if { [gcc_major_version] <= 8 } { + set have_xfail 1 + } +} + foreach_with_prefix scenario {all minimal} { set flags [list debug \ optimize=-O2 \ @@ -32,6 +39,21 @@ foreach_with_prefix scenario {all minimal} { runto "increment" - gdb_test "frame" \ + set re \ "#0\\s+callee\\.increment \\(val(=val@entry)?=99\\.0, msg=\\.\\.\\.\\).*" + set re_different_entry_val \ + "#0\\s+callee\\.increment \\(val=99.0, val@entry=.*, msg=\\.\\.\\.\\).*" + gdb_test_multiple "frame" "" { + -re -wrap $re { + pass $gdb_test_name + } + -re -wrap $re_different_entry_val { + if { $have_xfail } { + # GCC PR98148 + xfail $gdb_test_name + } else { + fail $gdb_test_name + } + } + } } |