This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: ICE in commit_one_edge_insertion, at flow.c:2467


> > ./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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]