http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50767
--- Comment #2 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-10-18 09:51:17 UTC --- PRE produces <bb 2>: # VUSE <.MEM_4(D)> pretmp.5_8 = 0B; <bb 3>: # .MEM_3 = PHI <.MEM_4(D)(2), .MEM_6(4)> # VUSE <.MEM_3> s.0_1 = s; ss.1_2 = pretmp.5_8; # .MEM_5 = VDEF <.MEM_3> s.0_1->s = ss.1_2; # .MEM_6 = VDEF <.MEM_5> bar (); <bb 4>: goto <bb 3>; which happens to fold ss->s for the first time, to the above but it misses to call update_stmt.