From 2f145821b7d0956d775bc012722ddc68149ed37d Mon Sep 17 00:00:00 2001 From: Richard Stallman Date: Tue, 20 Oct 1992 08:57:43 +0000 Subject: [PATCH] (make_node, copy_node): Don't assume node length is multiple of int. From-SVN: r2524 --- gcc/tree.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/tree.c b/gcc/tree.c index 4fb48e6780b..142254489a6 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -877,11 +877,12 @@ make_node (code) tree_node_sizes[(int)kind] += length; #endif - /* We assume here that the length of a tree node is a multiple of the - size of an int. Rounding up won't work because it would clobber - the next object. */ + /* Clear a word at a time. */ for (i = (length / sizeof (int)) - 1; i >= 0; i--) ((int *) t)[i] = 0; + /* Clear any extra bytes. */ + for (i = length / sizeof (int) * sizeof (int); i < length; i++) + ((char *) t)[i] = 0; TREE_SET_CODE (t, code); if (obstack == &permanent_obstack) @@ -978,6 +979,9 @@ copy_node (node) for (i = (length / sizeof (int)) - 1; i >= 0; i--) ((int *) t)[i] = ((int *) node)[i]; + /* Clear any extra bytes. */ + for (i = length / sizeof (int) * sizeof (int); i < length; i++) + ((char *) t)[i] = 0; TREE_CHAIN (t) = 0; -- 2.30.2