aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Bambrough <scottb@netwinder.org>2000-03-09 21:55:40 +0000
committerScott Bambrough <scottb@netwinder.org>2000-03-09 21:55:40 +0000
commitf1a6b754ab6c23051e6365b89dd9f89dfbfdf642 (patch)
treea964d556fadc2f1b03098627c788973d53fb750b
parent9282ff415550175b865c533af5d2f0668646e39f (diff)
downloadgdb-f1a6b754ab6c23051e6365b89dd9f89dfbfdf642.zip
gdb-f1a6b754ab6c23051e6365b89dd9f89dfbfdf642.tar.gz
gdb-f1a6b754ab6c23051e6365b89dd9f89dfbfdf642.tar.bz2
2000-02-25 Scott Bambrough <scottb@netwinder.org>
* gdb.base/long_long.exp: Correct test suite failure when printing a long long value as a double on ARM platforms. ARM doubles use a hybrid endian format. It is not strictly little or big endian. It is little endian with the words swapped.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.base/long_long.exp18
2 files changed, 22 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 118da38..96f51d3 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-25 Scott Bambrough <scottb@netwinder.org>
+
+ * gdb.base/long_long.exp: Correct test suite failure when printing
+ a long long value as a double on ARM platforms.
+
Thu Mar 9 14:21:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
* MAINTAINERS (Core): Anthony Green is the Java - including
diff --git a/gdb/testsuite/gdb.base/long_long.exp b/gdb/testsuite/gdb.base/long_long.exp
index 651daff..67f2423 100644
--- a/gdb/testsuite/gdb.base/long_long.exp
+++ b/gdb/testsuite/gdb.base/long_long.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -121,11 +121,27 @@ gdb_test "p/c oct" ".*'w'.*"
if { $sizeof_double == 8 } {
+# ARM floating point numbers are not strictly little endian or big endian,
+# but a hybrid. They are in little endian format with the two words
+# swapped in big endian format.
+
+ if [ istarget "arm*-*-*" ] then {
+
+# assume the long long represents a floating point double in ARM format
+ gdb_test "p/f oct" ".*2.1386676354387559e\\+265.*"
+
+ } else {
+
+# assume the long long represents a floating point double in little
+# endian format
gdb_test "p/f oct" ".*-5.9822653797615723e-120.*"
+ }
+
} else {
gdb_test "p/f oct" ".*-2.42716126e-15.*"
+
}
if { $target_bigendian_p } {