On Tue, 30 Jul 2019, Martin Liška wrote:
Ah, that's bad, both of them need a care:
Yes, that makes more sense to me, thanks.
I tried to experiment to understand, but it is complicated because including
<new> disables the optimization:
#include <new>
void fn1() {
char*p=new char;
delete p;
}
This ICEs with -O -std=c++17:
int a = 64;
std::align_val_t b{64};
void fn1() {
void *s = operator new(a,b);
operator delete(s,8+*(unsigned long*)s,b);
}
I can't see it on current master. Can you?
Yes. I just did a clean build to make sure.
--
Marc Glisse