This is the mail archive of the gcc-patches@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]

Bootstrap with -O9 fails on alpha


The problem is that, while compiling toplev.c for stage2, we end up
calling simplify_rtx(x), where x is:

(ne:DI (const_int 0 [0x0])
    (symbol_ref:DI ("print_rtl")))

simplify_rtx ends up calling:

    case '<':
      return simplify_relational_operation (code, GET_MODE (XEXP (x, 0)),
					    XEXP (x, 0), XEXP (x, 1));

but, since the mode of a const_int is VOIDmode,
simplify_relational_operation() abort()s:

  if (mode == VOIDmode
      && (GET_MODE (op0) != VOIDmode
	  || GET_MODE (op1) != VOIDmode))
    abort();


Is the patch below the right way to fix the problem?  I.e., ok to
install?

Index: gcc/ChangeLog
from  Alexandre Oliva  <aoliva@redhat.com>

	* simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
	simplify_relational_operation if either operand is non-VOIDmode.

Index: gcc/simplify-rtx.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/simplify-rtx.c,v
retrieving revision 1.24
diff -u -p -r1.24 simplify-rtx.c
--- gcc/simplify-rtx.c	2000/08/04 20:28:06	1.24
+++ gcc/simplify-rtx.c	2000/08/22 06:32:11
@@ -2091,7 +2091,10 @@ simplify_rtx (x)
 					 XEXP (x, 0), XEXP (x, 1), XEXP (x, 2));
 
     case '<':
-      return simplify_relational_operation (code, GET_MODE (XEXP (x, 0)),
+      return simplify_relational_operation (code,
+					    (GET_MODE (XEXP (x, 0)) != VOIDmode
+					     ? GET_MODE (XEXP (x, 0))
+					     : GET_MODE (XEXP (x, 1))),
 					    XEXP (x, 0), XEXP (x, 1));
     default:
       return NULL;

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                  aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist    *Please* write to mailing lists, not to me

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