[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#336167: gcc-4.0: breaks kernel builds in random ways.



tags 336167 +patch
thanks

Sven Luther wrote:
[snip]
> > The appended patch reverts a single line of the diff between 4.0.2-2
> > and 4.0.2-3 and lets the testcase succeed. I don't know that part of
> > gcc enough to judge if it is a valid fix for the problem.
> > 
> > Sven, could you test if this fixes also the problem you see?
> 
> Ok, i will, altough i would need to rebuild gcc, so it will not be before
> tomorrow that i can test it.

The appended patch fixes the problems for mips-linux, tested with a
kernel build and builds of ncpfs and mypasswordsafe.

Sven, can you test this patch?


Thiemo


2005-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>

	PR rtl-optimization/23585
	* rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
	that can't trap plus a constant integer, if the mode has zero size.


Index: rtlanal.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/rtlanal.c,v
retrieving revision 1.221
diff -u -p -r1.221 rtlanal.c
--- rtlanal.c	20 Oct 2005 12:14:29 -0000	1.221
+++ rtlanal.c	2 Nov 2005 09:32:05 -0000
@@ -267,7 +267,9 @@ rtx_addr_can_trap_p_1 (rtx x, enum machi
 	{
 	  HOST_WIDE_INT offset;
 
-	  if (!STRICT_ALIGNMENT || !unaligned_mems)
+	  if (!STRICT_ALIGNMENT
+	      || !unaligned_mems
+	      || GET_MODE_SIZE (mode) == 0)
 	    return 0;
 
 	  offset = INTVAL (XEXP (x, 1));




Reply to: