https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82560
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Further reduced: extern "C" int printf(const char*, ...); struct Foo { Foo(const char *) { printf("%p\tFoo(const char*)\n", this); } ~Foo() { printf("%p\t~Foo()\n", this); } }; struct Bar { Bar(Foo foo = "") { } ~Bar() { } }; int main() { delete new Bar(); }