This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: fix for memcpy/memset bug
- To: law at cygnus dot com
- Subject: Re: fix for memcpy/memset bug
- From: Alexandre Oliva <oliva at dcc dot unicamp dot br>
- Date: 30 Jun 1999 08:37:24 -0300
- Cc: egcs-patches at egcs dot cygnus dot com
- References: <19556.930642068@upchuck.cygnus.com>
On Jun 29, 1999, Jeffrey A Law <law@cygnus.com> wrote:
> * expr.c (emit_block_move): Properly handle case where one of the
> block move arguments has a queued increment or decrement.
> (clear_storage): Similarly. Fix formatting goof.
Even after installing the additional attached patch, it still failed
to build stage1's libgcc on alphaev56-dec-osf4.0d:
oliva@bela% ./cc1 libgcc2.i -quiet -dumpbase libgcc2.c -g -g1 -O2 -version -o libgcc2.s
GNU C version gcc-2.95 19990629 (prerelease) (alphaev56-dec-osf4.0d) compiled by CC.
/home/msc/oliva/src/egcs/gcc/libgcc2.c: In function `__bb_init_prg':
/home/msc/oliva/src/egcs/gcc/libgcc2.c:2167: Internal compiler error at expr.c:2754
#3 0x1200826dc in emit_move_insn_1 (x=0x14016c6f0, y=0x14016c588)
at /home/msc/oliva/src/egcs/gcc/expr.c:2754
2754 abort ();
(gdb) p x
$1 = (struct rtx_def *) 0x14016c6f0
(gdb) pr
(reg 156)
(gdb) p y
$2 = (struct rtx_def *) 0x14016c588
(gdb) pr
(const_int 2488 [0x9b8])
I'm investigating, but please don't expect much from me.
--
Alexandre Oliva http://www.dcc.unicamp.br/~oliva IC-Unicamp, Bra[sz]il
{oliva,Alexandre.Oliva}@dcc.unicamp.br aoliva@{acm.org,computer.org}
oliva@{gnu.org,kaffe.org,{egcs,sourceware}.cygnus.com,samba.org}
*** E-mail about software projects will be forwarded to mailing lists
Index: gcc/expr.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/expr.c,v
retrieving revision 1.144.4.1
diff -u -r1.144.4.1 expr.c
--- gcc/expr.c 1999/06/29 00:40:54 1.144.4.1
+++ gcc/expr.c 1999/06/30 11:32:40
@@ -1796,7 +1796,7 @@
retval = expand_expr (call_expr, NULL_RTX, VOIDmode, 0);
#else
emit_library_call (bcopy_libfunc, 0,
- VOIDmode, 3, y, Pmode, x, Pmode
+ VOIDmode, 3, y, Pmode, x, Pmode,
convert_to_mode (TYPE_MODE (integer_type_node), size,
TREE_UNSIGNED (integer_type_node)),
TYPE_MODE (integer_type_node));
@@ -2562,7 +2562,7 @@
retval = expand_expr (call_expr, NULL_RTX, VOIDmode, 0);
#else
emit_library_call (bzero_libfunc, 0,
- VOIDmode, 2, object, Pmode, size
+ VOIDmode, 2, object, Pmode, size,
TYPE_MODE (integer_type_node));
#endif
}