https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58483
--- Comment #17 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is related reduced testcase: ``` int f(void) { int tt = 100; int t[3] = {10,20,30}; int *t1 = new int[3]; __builtin_memcpy(t1, t, sizeof(t)); for(int *i = t1; i != &t1[3]; i++) tt += *i; delete[] t1; return tt; } ``` Note in the above testcase we can remove the memcpy but not the operator new/delete. This is unlike the original testcase where memcpy is not removed either.