http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56188
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-04 11:58:50 UTC --- ok, the difference is that in the working case we have Equivalence classes for Direct node node id 28:_10 are pointer: 11, location:0 Equivalence classes for Direct node node id 34:derefaddrtmp are pointer: 18, location:0 while in the non-working case Equivalence classes for Direct node node id 28:_10 are pointer: 18, location:0 Equivalence classes for Direct node node id 34:derefaddrtmp are pointer: 18, location:0 Bisecting points to rev. 195646. I have a fix.