http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58483
--- Comment #5 from dennis luehring <dl.soluz at gmx dot net> --- but clang 3.3 produces only the optimized output when using -O2 (-O3 still invokes the loop optimizer too early - but this is a known bug) so it seems that the llvm/clang developers think that new/delete can be removed the same way as malloc/free