https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98798
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- Yes, I think the ABI needs fixing. In this example Foo has a trivial destructor and Foo::operator delete[](void*, size_t, align_val_t) does not have two parameters. According to the ABI, no cookie is needed. But that's wrong, this operator delete[] needs a cookie just like operator delete[](void*, size_t) needs it. The rule in the ABI might need to consider a destroying operator delete too.