https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71258

--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> ---
inline void* operator new(std::size_t n){return __builtin_malloc(n);}
inline void operator delete(void*p, std::size_t){__builtin_free(p);}

And we get:
  _5 = __builtin_malloc (16);
  MEM[(struct model *)_5].D.43852._vptr.concept = &MEM[(void
*)&_ZTVN4poly5modelIiEE + 16B];
  MEM[(struct model *)_5]._data = 40;
  poly::model<int>::~model (_5);
  return 42;

So it isn't just that new/delete are not magic with gcc, we also fail to inline
~model here. Reminds me a bit of PR59948.

Reply via email to