https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78104
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #3) > (In reply to Markus Trippelsdorf from comment #0) > > A simple example: > > > > int main() { > > int *ob = new int(); > > delete ob; > > } > > > > clang optimizes it away: > > Which is funny considering what Chris Lattner wrote in PR 23383 comment #4: > This would not be legal, there is no reason operator new can't return a > pointer that already exists in the program. Note optimizing away is not about aliasing but recognizing a new/delete pair. But yes, there are (plenty of) duplicates. Just go find them...