https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107352
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Slightly more reduced: namespace std { struct destroying_delete_t { }; } struct hh { virtual ~hh(); static void operator delete(hh* ptr, std::destroying_delete_t) noexcept; }; class jj : virtual public hh { ~jj(){}; };