(rtx_alloc): Clear common area of rtx in a portable manner.
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 3 Jan 1993 23:59:45 +0000 (18:59 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 3 Jan 1993 23:59:45 +0000 (18:59 -0500)
From-SVN: r3074

gcc/rtl.c

index 8017df1b2c8eefb880dabcac7ee8b6245b34e763..a47ebd536315cba95820812d79a863a354b5f3ba 100644 (file)
--- a/gcc/rtl.c
+++ b/gcc/rtl.c
@@ -233,7 +233,14 @@ rtx_alloc (code)
   ob->next_free += length;
   ob->object_base = ob->next_free;
 
-  * (int *) rt = 0;
+  /* We want to clear everything up to the FLD array.  Normally, this is
+     one int, but we don't want to assume that and it isn't very portable
+     anyway; this is.  */
+
+  length = (sizeof (struct rtx_def) - sizeof (rtunion) - 1) / sizeof (int);
+  for (; length >= 0; length--)
+    ((int *) rt)[length] = 0;
+
   PUT_CODE (rt, code);
 
   return rt;