* i386-tdep.c (i386_register_convert_to_virtual): Replace
authorMark Kettenis <kettenis@gnu.org>
Mon, 30 Jul 2001 21:09:44 +0000 (21:09 +0000)
committerMark Kettenis <kettenis@gnu.org>
Mon, 30 Jul 2001 21:09:44 +0000 (21:09 +0000)
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.

gdb/ChangeLog
gdb/i386-tdep.c

index 34e8e91..8f8ee3b 100644 (file)
@@ -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.
index 3aa8cb5..d8cfe0f 100644 (file)
@@ -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);