-Wdelete-non-virtual-dtor controlled two diagnostics: 1) calling a non-virtual dtor from an abstract class, and 2) calling a non-virtual dtor from a polymorphic class. 1) is a lot more severe than 2), since 1) is a guaranteed crash, but 2) is just "code smell". Previously, projects compiled with -Wall -Wno-delete-non-virtual-dtor, which is somewhat reasonable, silently crashed on 1).
rdar://40380564
Thanks for taking a look!
This is backwards: this says that -Wdelete-abstract-non-virtual-dtor also controls -Wdelete-non-virtual-dtor. You presumably want the opposite relationship, so that -Wdelete-non-virtual-dtor controls both warnings and -Wdelete-abstract-non-virtual-dtor only controls the "abstract" warning.