Index: gcc/cse.c =================================================================== --- gcc/cse.c.orig 2009-11-20 13:05:39.000000000 +0100 +++ gcc/cse.c 2009-11-20 13:05:57.000000000 +0100 @@ -6712,7 +6712,8 @@ invalidate_skipped_set (dest, set, data) a BLKmode or nonscalar memory reference or a reference to a variable address. */ && (MEM_IN_STRUCT_P (dest) || GET_MODE (dest) == BLKmode - || cse_rtx_varies_p (XEXP (dest, 0), 0))) + || cse_rtx_varies_p (XEXP (dest, 0), 0)) + && !MEM_EXPR (dest)) { invalidate_memory (); return;