From ac79b88b814c4ad3ecdf9077859fe83e7400b8b8 Mon Sep 17 00:00:00 2001
From: Daniel Jacobowitz <drow@false.org>
Date: Mon, 15 Sep 2003 20:15:19 +0000
Subject: [PATCH] 	* values.c (unpack_double): Call floatformat_is_valid.

---
 gdb/ChangeLog | 4 ++++
 gdb/values.c  | 9 ++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 806cc60dfdd..c1f776d54d1 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2003-09-15  Daniel Jacobowitz  <drow@mvista.com>
+
+	* values.c (unpack_double): Call floatformat_is_valid.
+
 2003-09-15  Mark Kettenis  <kettenis@gnu.org>
 
 	* amd64fbsd-nat.c (_initialize_amd64fbsd_nat): Change type of
diff --git a/gdb/values.c b/gdb/values.c
index 7b6ce6fc210..652a7a93a52 100644
--- a/gdb/values.c
+++ b/gdb/values.c
@@ -739,7 +739,14 @@ unpack_double (struct type *type, const char *valaddr, int *invp)
 	 also not defined either.  Oops!
 
          Hopefully someone will add both the missing floatformat
-         definitions and floatformat_is_invalid() function.  */
+         definitions and the new cases for floatformat_is_valid ().  */
+
+      if (!floatformat_is_valid (floatformat_from_type (type), valaddr))
+	{
+	  *invp = 1;
+	  return 0.0;
+	}
+
       return extract_typed_floating (valaddr, type);
     }
   else if (nosign)