https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58483
--- Comment #8 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to dennis luehring from comment #7) [clang] > void *__builtin_operator_new(size_t) > void __builtin_operator_delete(void*) I don't understand why N3664 is talking of new expressions instead of operator new calls, it doesn't give any rationale for that choice, and we get duplicate wording between the description of new expressions and std::allocator::allocate. But at least it explains why they have these builtins (which at first sight is strange since they don't have __builtin_malloc). > gcc seems to have removed these long time ago and i currently do understand > whats gcc solution could be We may add a compilation flag that promises the user won't try to replace the main operator new / operator delete. The compiler could then inline them (either LTO or make an inlined version available), see malloc + free, and hopefully simplify that. We may also introduce those 2 builtins. Anyway, the first priority is simplifying the rest until there are just the calls to new+delete left. That's not currently the case.