https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116518
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #3) > (In reply to Andrew Pinski from comment #1) > > ``` > > __builtin_memcpy (_25, &MEM[(const struct array *)&D.94502]._M_elems, 3); > > D.94502 ={v} {CLOBBER(eos)}; > > operator delete (_25, 3); > > ``` > > > > The memcpy here is not deleted even though it is dead. > > it's because 'operator delete' doesn't kill the storage, at least DSE > doesn't know about DECL_IS_OPERATOR_DELETE_P yet. But also -fsane-operator-delete - delete could inspect memory contents though its fnspec already says it doesn't.