This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
Re: GCC build failed with your patch on 2000-11-29T18:50:00Z.
- To: GCC regression checker <geoffk at cygnus dot com>
- Subject: Re: GCC build failed with your patch on 2000-11-29T18:50:00Z.
- From: Jakub Jelinek <jakub at redhat dot com>
- Date: Wed, 29 Nov 2000 16:07:46 -0500
- Cc: gcc-regression at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- References: <200011291936.LAA13952@sloth.cygnus.com>
- Reply-To: Jakub Jelinek <jakub at redhat dot com>
On Wed, Nov 29, 2000 at 07:36:36PM +0000, GCC regression checker wrote:
> c++io.cc: In member function `void
> std::__basic_file<_CharT>::_M_open_mode(std::_Ios_Openmode, int&, int&,
> char*) [with _CharT = char]':
> c++io.cc:255: instantiated from here
> c++io.cc:71: Internal compiler error in can_store_by_pieces, at expr.c:2326
> Please submit a full bug report.
> See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
As ia32 has no pre or post decrement, it did not show up during bootstrap on
i386-redhat-linux.
Fixed thusly (commited, I hope it falls under obvious bugfix rule):
2000-11-29 Jakub Jelinek <jakub@redhat.com>
* expr.c (can_store_by_pieces): Reinitialize max_size for reverse
tests.
--- gcc/expr.c.jj Wed Nov 29 19:32:25 2000
+++ gcc/expr.c Wed Nov 29 22:04:56 2000
@@ -2263,7 +2263,7 @@ can_store_by_pieces (len, constfun, cons
PTR constfundata;
unsigned int align;
{
- unsigned HOST_WIDE_INT max_size = MOVE_MAX_PIECES + 1, l;
+ unsigned HOST_WIDE_INT max_size, l;
HOST_WIDE_INT offset = 0;
enum machine_mode mode, tmode;
enum insn_code icode;
@@ -2286,6 +2286,7 @@ can_store_by_pieces (len, constfun, cons
{
l = len;
mode = VOIDmode;
+ max_size = MOVE_MAX_PIECES + 1;
while (max_size > 1)
{
for (tmode = GET_CLASS_NARROWEST_MODE (MODE_INT);
Jakub