https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58483
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> --- Oh, and with late FRE even the original testcase now works. DSE fails to eliminate the memcpy () and thus consequently the stores to the temporary array. We don't have DECL_IS_OPERATOR_DELETE it seems and there's no clobber of the associated memory before it that could help. There's also EH that I'm not sure will interfere with DSE of the temporary array stores. __BB(2,guessed_local(118111600)): D_29441[0ul] = 10; D_29441[1ul] = 20; D_29441[2ul] = 30; _34 = operator new (12ul); goto __BB3(precise(134217728)); __BB(3,guessed_local(118078057)): _32 = _34 + 12ul; __builtin_memcpy (_34, &D_29441, 12ul); __l ={v} {CLOBBER}; _44 = _34 + 4ul; _47 = _44 + 4ul; operator delete (_34); D_29454 ={v} {CLOBBER}; D_29454 ={v} {CLOBBER}; D_29441 ={v} {CLOBBER}; return 160; __BB(4,precise(0)): L7: __MEM <struct _Vector_base> ((struct _Vector_base *)&D_29454) ={v} {CLOBBER}; resx 13 I somehow remember a bug or even patches about the missing DECL_IS_OPERATOR_DELETE?