GPC on a DEC Alpha

Mason Ip MasonIp at Attachmate.com
Wed Feb 16 09:32:29 CET 2000


Olivier Lecarme wrote ...

	> /net/packages/GNU/gcc-2.95.2/gcc/p/rts/error.pas: In function
`Geterrormessage':
	> /net/packages/GNU/gcc-2.95.2/gcc/p/rts/error.pas:365: Internal
compiler error in
	>  `copy_to_mode_reg', at gcc-2.95.2/gcc/explow.c:669

	> In what direction should I try to understand what occurs, or to
repair
	> it?

If you take a look at explow.c:669, you'll see the "offending" line.
I made the following changes and managed to compile gpc. Note that these
changes were properly not the right ways to fix the code. They were just
bypassing the real problems. Please use these changes with your own risk.

A) changes to explow.c

gcc-2.95.2/gcc> DIFF explow.c.orig explow.c
--- explow.c.orig  Tue Feb 15 10:30:22 2000
+++ explow.c    Tue Feb 15 13:28:02 2000
@@ -662,12 +662,14 @@
   
   /* If not an operand, must be an address with PLUS and MULT so
      do the computation.  */ 
   if (! general_operand (x, VOIDmode))
     x = force_operand (x, temp);
+/*
   if (GET_MODE (x) != mode && GET_MODE (x) != VOIDmode)
     abort ();
+*/
   if (x != temp)
     emit_move_insn (temp, x);
   return temp;
 }

B) changes to expr.c

gcc-2.95.2/gcc> DIFF expr.c.orig expr.c
--- expr.c.orig   Tue Feb 15 17:06:54 2000
+++ expr.c      Tue Feb 15 17:09:31 2000
@@ -2587,12 +2587,14 @@
   enum machine_mode mode = GET_MODE (x);
 
   x = protect_from_queue (x, 1);
   y = protect_from_queue (y, 0);
 
+/*
   if (mode == BLKmode || (GET_MODE (y) != mode && GET_MODE (y) !=
VOIDmode))
     abort ();
+*/
 
   /* Never force constant_p_rtx to memory.  */
   if (GET_CODE (y) == CONSTANT_P_RTX)
     ;
   else if (CONSTANT_P (y) && ! LEGITIMATE_CONSTANT_P (y))




More information about the Gpc mailing list