http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60461
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- It looks like when IPA SRA does About to replace expr p.f1 with ISRA.3 Adjusting call fn2/3 -> fn1.isra.0/6 replacing stmt:fn1.isra.0 (a[0]); it doesn't adjust IPA references for the load of a[0] it inserts and thus the reference to 'a' from fn2 isn't present anymore when streaming them out for WPA phase which then happily removes 'a' even though it is referenced as _5 = MEM[(int *)&a];