[Bug tree-optimization/71258] Missed optimizations: dynamic allocation, virtual calls, empty destructors
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue May 24 14:41:00 GMT 2016
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.
More information about the Gcc-bugs
mailing list