summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2001-07-30 21:22:10 +0000
committerMark Kettenis <kettenis@gnu.org>2001-07-30 21:22:10 +0000
commita9df3a80cc8b941d7d49b7715c221501e7cc9811 (patch)
tree515344d6c1762fa5ddfccc499afb973ba2bee75d
parentb7a622245a91b9a915e639cc026cbc18542bb3ab (diff)
downloadgdb-a9df3a80cc8b941d7d49b7715c221501e7cc9811.tar.gz
* i386-tdep.c (i386_register_convert_to_virtual): Replace
assertion with a warning if we're asked to convert towards a non-floating-point type. Zero out the the buffer where the data is supposed to be stored in that case.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/i386-tdep.c8
2 files changed, 14 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c7b53d4f9b2..4a35d174021 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2001-07-30 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_register_convert_to_virtual): Replace
+ assertion with a warning if we're asked to convert towards a
+ non-floating-point type. Zero out the the buffer where the data
+ is supposed to be stored in that case.
+
2001-07-29 Eli Zaretskii <eliz@is.elta.co.il>
* config/djgpp/djconfig.sh: Unset CDPATH.
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 3aa8cb54344..d8cfe0fd084 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1046,7 +1046,13 @@ i386_register_convert_to_virtual (int regnum, struct type *type,
DOUBLEST d;
/* We only support floating-point values. */
- gdb_assert (TYPE_CODE (type) == TYPE_CODE_FLT);
+ if (TYPE_CODE (type) != TYPE_CODE_FLT)
+ {
+ warning ("Cannot convert floating-point register value "
+ "to non-floating-point type.");
+ memset (to, 0, TYPE_LENGTH (type));
+ return;
+ }
/* First add the necessary padding. */
memcpy (buf, from, FPU_REG_RAW_SIZE);