#include <iostream>
struct abc {
virtual ~abc() {}
};
struct d : abc {
void operator delete(void*) { std::cout << "goodbye\n"; }
};
int main() {
abc *p = new d;
delete p;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IGFiYyB7CiAgICAgICAgdmlydHVhbCB+YWJjKCkge30KICAgIH07CgogICAgc3RydWN0IGQgOiBhYmMgewogICAgICAgIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQqKSB7IHN0ZDo6Y291dCA8PCAiZ29vZGJ5ZVxuIjsgfQogICAgfTsKCiAgICBpbnQgbWFpbigpIHsKICAgICAgICBhYmMgKnAgPSBuZXcgZDsKICAgICAgICBkZWxldGUgcDsKICAgIH0K