diff options
author | Tom de Vries <tdevries@suse.de> | 2022-04-15 18:00:30 +0200 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2022-04-15 18:00:30 +0200 |
commit | 3b9809bc62cd0ff2aff2232b68adc6bb82eee61b (patch) | |
tree | 1311f00b80f2b917764da78268f231de5d18ac22 /gdb | |
parent | d4cd7e84e28243f2c8b340a3d8affed696482cef (diff) | |
download | gdb-3b9809bc62cd0ff2aff2232b68adc6bb82eee61b.zip gdb-3b9809bc62cd0ff2aff2232b68adc6bb82eee61b.tar.gz gdb-3b9809bc62cd0ff2aff2232b68adc6bb82eee61b.tar.bz2 |
[gdb/testsuite] Fix gdb.ada/float-bits.exp with -m32
With test-case gdb.ada/float-bits.exp and native we get:
...
(gdb) print 16llf#7FFFF7FF4054A56FA5B99019A5C8#^M
$9 = 5.0e+25^M
(gdb) PASS: gdb.ada/float-bits.exp: print 16llf#7FFFF7FF4054A56FA5B99019A5C8#
...
but with target board unix/-m32 we have instead:
...
(gdb) print 16llf#7FFFF7FF4054A56FA5B99019A5C8#^M
Cannot export value 2596145952482202326224873165792712 as 96-bits \
unsigned integer (must be between 0 and 79228162514264337593543950335)^M
(gdb) FAIL: gdb.ada/float-bits.exp: print 16llf#7FFFF7FF4054A56FA5B99019A5C8#
...
Fix this by testing whether 16llf is supported by doing ptype long_long_float
which gets us either:
...
type = <16-byte float>^M
...
or:
...
type = <12-byte float>^M
...
Tested on x86_64-linux with native and unix/-m32.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29041
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/testsuite/gdb.ada/float-bits.exp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/gdb/testsuite/gdb.ada/float-bits.exp b/gdb/testsuite/gdb.ada/float-bits.exp index c98afb5..4ca8dbf 100644 --- a/gdb/testsuite/gdb.ada/float-bits.exp +++ b/gdb/testsuite/gdb.ada/float-bits.exp @@ -42,12 +42,29 @@ gdb_test "print val_double := 16lf#bc0d83c94fb6d2ac#" " = -2.0e-19" gdb_test "print val_double" " = -2.0e-19" \ "print val_double after assignment" -gdb_test "print 16llf#7FFFF7FF4054A56FA5B99019A5C8#" " = 5.0e\\+25" +set 16llf_supported 0 +gdb_test_multiple "ptype long_long_float" "" { + -re -wrap "<16-byte float>" { + set 16llf_supported 1 + pass $gdb_test_name + } + -re -wrap "<\\d+-byte float>" { + pass $gdb_test_name + } +} + +if { $16llf_supported } { + gdb_test "print 16llf#7FFFF7FF4054A56FA5B99019A5C8#" " = 5.0e\\+25" +} gdb_test "print val_long_double" " = 5.0e\\+25" -gdb_test "print val_long_double := 16llf#7FFFF7FF4054A56FA5B99019A5C8#" \ - " = 5.0e\\+25" +if { $16llf_supported } { + gdb_test "print val_long_double := 16llf#7FFFF7FF4054A56FA5B99019A5C8#" \ + " = 5.0e\\+25" +} gdb_test "print val_long_double" " = 5.0e\\+25" \ "print val_long_double after assignment" -gdb_test "print 16llf#a56fa5b99019a5c800007ffff7ff4054#" \ - " = <invalid float value>" +if { $16llf_supported } { + gdb_test "print 16llf#a56fa5b99019a5c800007ffff7ff4054#" \ + " = <invalid float value>" +} |