This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: ICE in commit_one_edge_insertion, at flow.c:2467
- To: jh at suse dot cz (Jan Hubicka)
- Subject: Re: ICE in commit_one_edge_insertion, at flow.c:2467
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Tue, 7 Aug 2001 17:50:31 -0400 (EDT)
- Cc: gcc-bugs at gcc dot gnu dot org, jh at suse dot cz
> > ./xgcc -B./ -B/usr/local/hppa1.1-hp-hpux10.20/bin/ -isystem /usr/local/hppa1.1-hp-hpux10.20/include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -g1 -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/config -I../../gcc/../include -DUSE_COLLECT2 -DL_muldi3 -c ../../gcc/libgcc2.c -o libgcc/./_muldi3.o
> > ../../gcc/libgcc2.c: In function `__muldi3':
> > ../../gcc/libgcc2.c:367: Internal compiler error in commit_one_edge_insertion, at flow.c:2467
>
> I may take a look at it tomorrow. Can you please send me preprocessed testcase
> so I can reproduce it on crosscompiler?
I have done some investigation of the problem. The above is caused by a
miscompilation of returnjump_p_1. I small test case for this is:
#include "config.h"
#include "system.h"
#include "rtl.h"
static int
returnjump_p_1 (loc, data)
rtx *loc;
void *data ATTRIBUTE_UNUSED;
{
rtx x = *loc;
return x && GET_CODE (x) == RETURN;
}
int
returnjump_p (insn)
rtx insn;
{
if (GET_CODE (insn) != JUMP_INSN)
return 0;
return for_each_rtx (&PATTERN (insn), returnjump_p_1, NULL);
}
For more info, see <http://gcc.gnu.org/ml/gcc-bugs/2001-08/msg00104.html>.
I know that the problem arises in the call to "if_convert (0)" around line
2945 in toplev.c. I suspect DJ's patch to noce_get_alt_condition may
have caused the problem but haven't had time yet to figure out exactly
what is wrong.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)