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.

Reply via email to