https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70848
ktkachov at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |arm Status|UNCONFIRMED |NEW Known to work| |4.9.4, 5.3.1 Keywords| |wrong-code Last reconfirmed| |2016-04-28 Component|c++ |tree-optimization CC| |ktkachov at gcc dot gnu.org Ever confirmed|0 |1 Target Milestone|--- |6.2 Known to fail| |6.1.0, 7.0 --- Comment #4 from ktkachov at gcc dot gnu.org --- Confirmed, also doesn't happen on aarch64. The changes happen at tree-level. 035t.mergephi1 contains void test() () { <bb 2>: MEM[(volatile int *)327221280B] = 97; MEM[(volatile int *)327221280B] = 98; MEM[(volatile int *)327221280B] = 99; return; } but 036t.dse1 contains: void test() () { <bb 2>: MEM[(volatile int *)327221280B] = 99; return; }