https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91407
Bug ID: 91407 Summary: Wnon-virtual-dtor should't fire for classes with operator delete=delete Product: gcc Version: 8.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asorenji at gmail dot com Target Milestone: --- Okay, attempt of delete polymorphic class without virtual destructor, lead to UB. But, I want trivially destructible class with virtual functions. So, I just mark operator delete as delete. No delete expression - no problem. But gcc still show me a warning. gcc (Debian 8.3.0-6) 8.3.0 Command line: gcc main.cpp -Wnon-virtual-dtor Source: class Test { public: virtual void foo(){} void operator delete(void*)=delete; }; int main() { return 0; } Yes, yes, although "delete pointer" don't work, "::delete pointer" still worked. But it's just a shoot in the foot.