Is the whole object freed with a non-virtual destructor and a Base class pointer?
It’s undefined behavior, so anything can happen. Quote from the standard [expr.delete]: In the first alternative (delete object), if the static type of the object to be deleted is different from its dynamic type, the static type shall be a base class of the dynamic type of the object to be deleted and the static … Read more