https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115236
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- The main issue is that 'c' is a direct node by means of copying the address to MEM[(int * volatile *)&c] ={v} b.0_1; that makes us not apply STOREDANYTHING to it. It's not exactly clear why we should excempt direct nodes here, that's probably a mistake.