diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-26 09:31:42 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-26 09:31:42 +0000 |
commit | c59eff3df18d6512bb3056080d0854af5b9b59de (patch) | |
tree | 1ef42433c2078c368e91375f24eaeadda253d631 /gcc/gengenrtl.c | |
parent | 3806ffea5ab55faf9e8193b89dbe608d029ad3a9 (diff) | |
download | gcc-c59eff3df18d6512bb3056080d0854af5b9b59de.tar.gz |
* gengenrtl.c (gencode): Always use bzero to clear memory instead
of dangerous casts and stores.
Fixes alpha & sparc -O3 bootstrap problems.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24420 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gengenrtl.c')
-rw-r--r-- | gcc/gengenrtl.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/gcc/gengenrtl.c b/gcc/gengenrtl.c index e99cb723e84..b9455cb7c1c 100644 --- a/gcc/gengenrtl.c +++ b/gcc/gengenrtl.c @@ -268,12 +268,7 @@ gencode (f) fputs ("static rtx obstack_alloc_rtx (length)\n", f); fputs (" register int length;\n{\n", f); fputs (" rtx rt = (rtx) obstack_alloc (rtl_obstack, length);\n\n", f); - fputs (" if (sizeof(struct rtx_def) - sizeof(rtunion) == sizeof(int))\n", f); - fputs (" *(int *)rt = 0;\n", f); - fputs (" else if (sizeof(struct rtx_def) - sizeof(rtunion) == sizeof(HOST_WIDE_INT))\n", f); - fputs (" *(HOST_WIDE_INT *)rt = 0;\n", f); - fputs (" else\n", f); - fputs (" bzero((char *) rt, sizeof(struct rtx_def) - sizeof(rtunion));\n\n", f); + fputs (" bzero((char *) rt, sizeof(struct rtx_def) - sizeof(rtunion));\n\n", f); fputs (" return rt;\n}\n\n", f); for (fmt = formats; *fmt; ++fmt) |