--- combine.c.reg_alloc Mon Sep 23 18:35:46 2002 +++ combine.c Mon Sep 23 23:33:21 2002 @@ -1304,7 +1304,8 @@ The problem can also happen if the dest of I3 is a memory ref, if another dest in I2 is an indirect memory ref. */ for (i = 0; i < XVECLEN (p2, 0); i++) - if (GET_CODE (XVECEXP (p2, 0, i)) == SET + if ((GET_CODE (XVECEXP (p2, 0, i)) == SET + || GET_CODE (XVECEXP (p2, 0, i)) == CLOBBER) && reg_overlap_mentioned_p (SET_DEST (PATTERN (i3)), SET_DEST (XVECEXP (p2, 0, i)))) break;