https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81977
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target|X86_64 |x86_64-*-* Priority|P3 |P2 Status|UNCONFIRMED |ASSIGNED Known to work| |4.6.4 Keywords| |wrong-code Last reconfirmed| |2017-08-28 Component|c++ |tree-optimization Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Summary|Issue with inline memcpy |[5/6/7/8 Regression] Issue |with optimizations enabled |with inline memcpy with | |optimizations enabled Target Milestone|--- |5.5 Known to fail| |4.7.3, 4.8.5, 5.4.0, 6.4.0, | |7.2.0 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. FRE does this. Mine. int main() () { struct Msg msg; uint8_t * _3; <bb 2> [100.00%]: _3 = operator new [] (30); MEM[(void *)&msg + 4B] = 289662039076023245; MEM[(long unsigned int *)&msg + 12B] = 66051; memcpy (_3, &MEM[(struct Payload *)&msg]._pref, 12); printval (5655); operator delete [] (_3); msg ={v} {CLOBBER}; return 0;